我还没有能够找到解决方案,希望得到一些澄清!
我希望能够在我的应用中使用2个或3个视图实现页面视图,但我希望这些视图是表格视图。可能不是表视图控制器,而是嵌入在视图控制器中的表。
我已经为页面控制器找到了一些不太合适的教程,但没有任何内容涉及表格视图。
想想Twitter,那就是我之后的事情!
提前致谢。
答案 0 :(得分:0)
要回答您的问题,您需要按照以下4个步骤操作:
1)使用Interface Builder
创建一个UIViewController2)在这个ViewController中添加一个UIScrollView和一个UIPageController
3)在ScrollView中,您可以放置所需的所有视图(在您的情况下为Tableview)......
4)因为我看到你想要放3个tableviews ...所以添加3个tableviews。
完成这些步骤后,您可以使用以下代码轻松自定义ScrollView和UIPageController:
ViewController.h中的
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UITableViewDelegate, UITableViewDataSource,UIScrollViewDelegate>
{
IBOutlet UITableView *tableview1;
IBOutlet UITableView *tableview2;
IBOutlet UITableView *tableview1;
IBOutlet UIBarButtonItem*SideBar;
IBOutlet UIScrollView*scrool;
IBOutlet UIPageControl*PageControl;
}
-(IBAction)ChangeView:(id)sender;
@end
现在我们已经配置了Header,我们可以传递给ViewController.m文件,我们将设置UIScrollView,UIpagecontroller和不同的tableviews:
- (void)viewDidLoad {
//Here we Config the PageControl that we declared in .h to do the function ChangeViews.
[pageControl addTarget:self action:@selector(ChangeViews:) forControlEvents:UIControlEventValueChanged];
[super viewDidLoad];
}
对于ScrollViewDelegate:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[scrool setScrollEnabled:YES];
[scrool setContentSize:CGSizeMake(scrool.frame.size.width*3
,scrool.frame.size.height)];
}
- (IBAction)ChangePage:(id)sender {
CGFloat x = PageControl.currentPage * scrool.frame.size.width;
[scrool setContentOffset:CGPointMake(x, 0) animated:YES];
}
-(void) scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
NSInteger pageNumber = roundf(scrool.contentOffset.x / (scrool.frame.size.width));
PageControl.currentPage = pageNumber;
}
完成这些步骤之后您需要配置不同的Tableviews ...我建议您将不同的标签设置为三个tableviews(es:tableview1.tag = 1 .... etc)然后在tableview设置的不同阶段宣布:
示例:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
int x;
if(tableview.tag ==1){
x= 10;
}else if(tableview.tag == 2){
x= 3;
}else if(tableview.tag ==3){
x = 4
}
return x;
}
希望这有帮助