UIPageControl与表视图

时间:2015-06-26 16:28:32

标签: objective-c xcode uipageviewcontroller

我还没有能够找到解决方案,希望得到一些澄清!

我希望能够在我的应用中使用2个或3个视图实现页面视图,但我希望这些视图是表格视图。可能不是表视图控制器,而是嵌入在视图控制器中的表。

我已经为页面控制器找到了一些不太合适的教程,但没有任何内容涉及表格视图。

想想Twitter,那就是我之后的事情!

提前致谢。

1 个答案:

答案 0 :(得分:0)

要回答您的问题,您需要按照以下4个步骤操作:

1)使用Interface Builder

创建一个UIViewController

2)在这个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;
}

希望这有帮助