2011-08-07 52 views
-1

我做了一個啓用分頁的UIScrollView(水平滾動),我想將多個UITableView對象嵌入到UIScrollView中。如何將UITableView嵌入到UIScrollView中?

如何做到這一點?有沒有示例代碼?

謝謝。

+0

蘋果嚴格的說來避免這種情況。在UIScrolView中使用UITableView。 – makboney

+0

要避免的原因是什麼?我怎樣才能重現我想要的? – user403015

+0

已編輯的答案.. – Legolas

回答

-3

編輯:

你可以有很多物體在你的tableView,並self.tableView.scrollEnabled = YES會給垂直滾動視圖了這一點。

要得到一個水平滾動,我建議你爲每個視圖控制器創建一個tableView並添加一個UIPageControl,每個頁面表示一個tableView

檢查UIPageControl Documentation

您可以使用此教程發展 - http://cocoawithlove.com/2009/01/multiple-virtual-pages-in-uiscrollview.html

+0

我已經說過UIScrollView是水平滾動的。你所說的是垂直滾動。你的回答不具有建設性。 – user403015

+0

所以可以說我們有3個tableviews。您希望它們能夠垂直滾動。你想要水平滾動每個tableview? – Legolas

+0

是的。但是,您的建議教程不會討論UITableView和UIScrollView的組合使用。你編輯的答案仍然沒有建設性。 – user403015

2

下面你會發現,加載兩個UITableViewControllers作爲單獨的頁面的例子。

// .h File 

@interface PagingViewController : UIViewController <UIScrollViewDelegate>{ 

} 

-(void)loadPage:(int)page; 

@end 



// .m File 

static NSUInteger kNumberOfPages = 2; 

@interface PagingViewController() 

@property(nonatomic,retain)NSMutableArray *viewControllers; 
@property(nonatomic,retain)UIView *contentView; 

@end 

@implementation PagingViewController 

@synthesize viewControllers; 
@synthesize contentView; 


-(id)init{ 

     self = [super init]; 

    if(self) { 

     NSMutableArray *controllers = [[NSMutableArray alloc] init]; 
     for (unsigned i = 0; i < kNumberOfPages; i++) 
     { 
      [controllers addObject:[NSNull null]]; 
     } 
     self.viewControllers = controllers; 
     [controllers release]; 

     contentView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; 

     self.view = contentView; 

     [self loadPage:0]; 

    } 
    return self; 
} 

- (void)loadPage:(int)page{ 

    if (page < 0) 
     return; 
    if (page >= kNumberOfPages) 
     return; 
    if(page == 0){  
     FirstUITableViewController *firstTableVC = [viewControllers objectAtIndex:page]; 

     if ((NSNull *)firstTableVC == [NSNull null]){ 
      firstTableVC = [[FirstUITableViewController alloc] init]; 
      [viewControllers replaceObjectAtIndex:page withObject:firstTableVC]; 
      [firstTableVC release]; 
     } 

     if (firstTableVC.view.superview == nil) 
     { 
      [contentView addSubview:firstTableVC.view]; 
     } 
    }else if(page == 1){ 

     SecondUITableViewController *secondTableVC = [viewControllers objectAtIndex:page]; 

     if ((NSNull *)secondTableVC == [NSNull null]){ 
      secondTableVC = [[SecondUITableViewController alloc] init]; 
      [viewControllers replaceObjectAtIndex:page withObject:secondTableVC]; 
      [secondTableVC release]; 
     } 

     if (secondTableVC.view.superview == nil) 
     { 
      [contentView addSubview:secondTableVC.view]; 
     } 
    } 
} 

//不要忘記的dealloc

相關問題