我做了一個啓用分頁的UIScrollView(水平滾動),我想將多個UITableView對象嵌入到UIScrollView中。如何將UITableView嵌入到UIScrollView中?
如何做到這一點?有沒有示例代碼?
謝謝。
我做了一個啓用分頁的UIScrollView(水平滾動),我想將多個UITableView對象嵌入到UIScrollView中。如何將UITableView嵌入到UIScrollView中?
如何做到這一點?有沒有示例代碼?
謝謝。
編輯:
你可以有很多物體在你的tableView
,並self.tableView.scrollEnabled = YES
會給垂直滾動視圖了這一點。
要得到一個水平滾動,我建議你爲每個視圖控制器創建一個tableView並添加一個UIPageControl
,每個頁面表示一個tableView
。
檢查UIPageControl Documentation。
您可以使用此教程發展 - http://cocoawithlove.com/2009/01/multiple-virtual-pages-in-uiscrollview.html
我已經說過UIScrollView是水平滾動的。你所說的是垂直滾動。你的回答不具有建設性。 – user403015
所以可以說我們有3個tableviews。您希望它們能夠垂直滾動。你想要水平滾動每個tableview? – Legolas
是的。但是,您的建議教程不會討論UITableView和UIScrollView的組合使用。你編輯的答案仍然沒有建設性。 – user403015
下面你會發現,加載兩個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
蘋果嚴格的說來避免這種情況。在UIScrolView中使用UITableView。 – makboney
要避免的原因是什麼?我怎樣才能重現我想要的? – user403015
已編輯的答案.. – Legolas