iOS开发项目篇—49“发现”界面完善
iOS开发项目篇—49“发现”界面完善
一、简单说明
已经完成的效果:-----》目标效果
需要完善的地方:
(1)子标题和标题显示在同一行上。
修改样式:UITableViewCellStyleSubtitle---》UITableViewCellStyleValue1
1 //初始化类方法 2 +(instancetype)cellWithTablView:(UITableView *)tableView 3 { 4 static NSString *ID=@"ID"; 5 YYCommonCell *cell=[tableView dequeueReusableCellWithIdentifier:ID]; 6 if (cell==nil) { 7 // cell = [[YYCommonCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID]; 8 cell = [[YYCommonCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:ID]; 9 } 10 return cell; 11 }
(2)设置标题和子标题的文字
设置标题字体为黑色粗体,设置子标题为12号字体。
1 // 2 // YYCommonCell.m 3 4 -(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 5 { 6 self=[super initWithStyle:style reuseIdentifier:reuseIdentifier]; 7 if (self) { 8 //设置标题和子标题的文字 9 self.textLabel.font=[UIFont boldSystemFontOfSize:15]; 10 self.detailTextLabel.font=[UIFont systemFontOfSize:12]; 11 } 12 return self; 13 }
调整后的效果:
(3)调整子标题的文字紧跟在标题的后面显示,而不是右对齐。
1 // 2 // YYCommonCell.m 3 4 #pragma mark-调整子控件的位置 5 -(void)layoutSubviews 6 { 7 [super layoutSubviews]; 8 //调整子标题的x值 9 self.detailTextLabel.x=CGRectGetMaxX(self.textLabel.frame)+10; 10 }
(4)设置tableView的背景色,调整组间的间距。
设置每一组的头部和尾部的高度
实现代码:
1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 5 //创建并添加一个搜索框 6 //添加一个搜索框 7 YYSearchBar *searchBar=[YYSearchBar SearchBar]; 8 searchBar.frame=CGRectMake(0, 100, 300, 35); 9 self.navigationItem.titleView=searchBar; 10 11 //设置tableview的属性 12 //设置全局背景色 13 self.tableView.backgroundColor=YYGlobalBg; 14 self.tableView.sectionFooterHeight=0; 15 self.tableView.sectionHeaderHeight=YYStatusCellMargin; 16 17 18 // 初始化模型数据 19 [self setupGroups]; 20 }
此时的显示效果:
(5)第一个cell的距离。
第一种做法:在自定义的cell中,让每个cell的y值都网上挪一段距离。
1 -(void)setFrame:(CGRect)frame 2 { 3 frame.origin.y-=30; 4 [super setFrame:frame]; 5 }
打印查看tableView在控制器中的frame
1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 5 //创建并添加一个搜索框 6 //添加一个搜索框 7 YYSearchBar *searchBar=[YYSearchBar SearchBar]; 8 searchBar.frame=CGRectMake(0, 100, 300, 35); 9 self.navigationItem.titleView=searchBar; 10 11 //设置tableview的属性 12 //设置全局背景色 13 self.tableView.backgroundColor=YYGlobalBg; 14 self.tableView.sectionFooterHeight=0; 15 self.tableView.sectionHeaderHeight=YYStatusCellMargin; 16 17 // 初始化模型数据 18 [self setupGroups]; 19 20 YYLog(@"viewDidLoad---%@",NSStringFromUIEdgeInsets(self.tableView.contentInset)); 21 } 22 23 -(void)viewDidAppear:(BOOL)animated 24 { 25 [super viewDidAppear:animated]; 26 YYLog(@"viewDidAppear---%@",NSStringFromUIEdgeInsets(self.tableView.contentInset)); 27 }
距离上方的导航栏和下方的工具条永远有64和49的距离。
查看第一个cell的位置
-(void)setFrame:(CGRect)frame { // frame.origin.y-=30; YYLog(@"%f",self.y); [super setFrame:frame]; }
打印查看
cell的原始高度为35.
第二种做法
1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 5 //创建并添加一个搜索框 6 //添加一个搜索框 7 YYSearchBar *searchBar=[YYSearchBar SearchBar]; 8 searchBar.frame=CGRectMake(0, 100, 300, 35); 9 self.navigationItem.titleView=searchBar; 10 11 //设置tableview的属性 12 //设置全局背景色 13 self.tableView.backgroundColor=YYGlobalBg; 14 self.tableView.sectionFooterHeight=0; 15 self.tableView.sectionHeaderHeight=YYStatusCellMargin; 16 17 // 初始化模型数据 18 [self setupGroups]; 19 20 YYLog(@"viewDidLoad---%@",NSStringFromUIEdgeInsets(self.tableView.contentInset)); 21 self.tableView.contentInset=UIEdgeInsetsMake(YYStatusCellMargin-35, 0, 0, 0); 22 }
最终效果:
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。