2015-06-26 2 views
0

Мне пока не удалось найти решение, надеясь на некоторое разъяснение!UIPageControl с видом стола

Я хочу, чтобы иметь возможность просмотра страницы в моем приложении с 2 или 3 видами, но я хочу, чтобы эти представления представляли собой таблицы. Возможно, не контроллеры табличных представлений, а таблицы встроены в контроллеры.

Я нашел несколько полуподобных учебников для контролеров страниц, но ничего, что касается табличных представлений.

Подумайте, что такое Twitter, и это то, что мне нужно!

Заранее спасибо.

ответ

0

Чтобы ответить на ваши проблемы необходимо выполнить следующие 4 шага:

1) создать UIViewController с Interface Builder

2) Внутри этого ViewController добавить UIScrollView и UIPageController

3) Внутри ScrollView вы можете разместить все виды, которые вам нужны (Tableviews в вашем случае) ...

4) Как я вижу, вы хотите разместить 3 вида таблиц ... так что добавьте 3 таблицы.

После этих шагов, вы можете легко с помощью следующего кода настроить 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 

Теперь, когда мы уже Config в заголовок мы можем перейти к 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 (а: tableview1.tag = 1 .... и т.д.), то в разных фазах от установки 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; 
} 

Надеется, что это помогает

+0

Когда вы говорите, добавить 2 tableViews, как они должны добавлять в scrollv iew o раскадровка? рядом друг с другом, друг на друга? – nickjf89

Смежные вопросы