一、介绍
这次主要做了一个TableViewController,其中TableViewController是用代码编写的,而TableView中的Cell则是用xib文件做的,接下来简单介绍一下我做的
二、工作
之前用TabBarController建立了分页后,每个分页需要展示不同的内容,比如“我”,需要展示个人信息,所以用TableView来实现
关于TableView我觉得主要有这些是要注意的,Cell,Delegate以及Data Source。UITableViewController的使用可以参考以下官方文档UITableView
三、实现
1、首先需要构建Cell,这里我用xib的方法构建,同时用以下代码登录到TableView
[self.tableView registerNib:[UINib nibWithNibName:@"MeHeadPhotoCell" bundle:nil]
forCellReuseIdentifier:meHeadPhotoCellIdentifier];
下图是register的Cell的xib文件
2、Data Source主要告诉TableView关于内容方面的信息,比如有多少个section和每个section有多少row等,还有比较重要的就是告诉TableView在某个IndexPath下的Cell长什么样,主要是以下这几个函数
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
比如说贴出来的TableView的图,就有5个section,每个section之间有Header和Footer间隔开,其中第三个section有3个row,其他均为1个row
3、Delegate这里用到主要是告诉TableView每个Cell的高度,每个section之间的距离,点击某个Cell后的反应等等,用到以下函数
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
四、微小的工作
(1)在registerNib的时候nibWithNibName需要跟构建的xib的文件名字一样,而在没有xib文件时用registerClass达到一样的register的效果
(2)Button,TextField等组件可以设置圆角,用xx.layer.cornerRadius来设置,同时还需要设置xx.layer.masksToBounds成YES来显示
(3)左上角是坐标是(0,0),屏幕长宽可以用[UIScreen mainScreen].bounds.size.width和[UIScreen mainScreen].bounds.size.height来获得
(4)圆括号是类别的意思,可以扩展原来的类比如
ButtonColor.h
@interface UIColor (buttonColor)
+ (instancetype)logoutButtonColor;
+ (instancetype)logoutButtonTouchUpInsideColor;
+ (instancetype)backgroundColor;
+ (instancetype)textFieldBorderColor;
+ (instancetype)remindMessageGrayColor;
+ (instancetype)loginAndFindPasswordGrayColor;
@end
ButtonColor.m
@implementation UIColor (buttonColor)
+ (instancetype)logoutButtonColor {
return [UIColor colorWithRed:234.0/255.0 green:65.0/255.0 blue:107.0/255.0 alpha:1.0];
}
+ (instancetype)logoutButtonTouchUpInsideColor {
return [UIColor colorWithRed:126.0/255.0 green:55.0/255.0 blue:92.0/255.0 alpha:1.0];
}
+ (instancetype)backgroundColor {
return [UIColor colorWithRed:237.0/255.0 green:239.0/255.0 blue:240.0/255.0 alpha:1.0];
}
+ (instancetype)textFieldBorderColor {
return [UIColor colorWithRed:231.0/255.0 green:233.0/255.0 blue:232.0/255.0 alpha:1.0];
}
+ (instancetype)remindMessageGrayColor {
return [UIColor colorWithRed:182.0/255.0 green:183.0/255.0 blue:185.0/255.0 alpha:1.0];
}
+ (instancetype)loginAndFindPasswordGrayColor; {
return [UIColor colorWithRed:58.0/255.0 green:60.0/255.0 blue:62.0/255.0 alpha:1.0];
}
@end