今天学习Three20里面的TTTableViewController。在开发里面表格视图是一个非常常用的控件。TTTableViewController,如果真的要和SDK的UITableViewController对比的话,就是实现的效果完全一样,但是思路实现起来,TT比UI更加直接。
做一个简单的对比。
UITableviewController要显示表格视图,至少要写3个函数,分别为:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
这个也只是纯粹显示视图用的。
而对比起来,TTTableViewController要显示一个有多个section的表格视图,相当简单,只要将dataSource设置好就可以了。
而dataSource简单可以理解成一个数组就可以了。直接调用dataSourceWithObjects:就可以了。
self.dataSource = [TTSectionedDataSource dataSourceWithObjects:
@"Photos",
[TTTableTextItem itemWithText:@"Photo Browser" URL:@"tt://photoTest1"],
[TTTableTextItem itemWithText:@"Photo Thumbnails" URL:@"tt://photoTest2"],
@"Styles",
[TTTableTextItem itemWithText:@"Styled Views" URL:@"tt://styleTest"],
[TTTableTextItem itemWithText:@"Styled Labels" URL:@"tt://styledTextTest"],
@"Controls",
[TTTableTextItem itemWithText:@"Buttons" URL:@"tt://buttonTest"],
[TTTableTextItem itemWithText:@"Tabs" URL:@"tt://tabBarTest"],
[TTTableTextItem itemWithText:@"Composers" URL:@"tt://composerTest"],
nil];看上面的代码可以知道,数组的第一个参数为section的标题,下面跟着就是该section下面的cell。由于还没有去涉及到URL的跳转,所以目前只是显示的。
我试过了,在viewDidLoad函数设置dataSource也可以,重写- (void)createModel;函数,在函数里面设置也可以。不过根据MVC的模式,应该是放在createModel里面实现的。
当然这样都还没有设置跳转的,就是点击cell没有反应的。
TTTableViewControler 使用起来还是比较简单的,因为都是一个演示的表格视图,所以就不深入去探讨了。
至于跳转的就涉及到map,明天去探讨一下map的用法。