首页 > 代码库 > iOS开发项目篇—49“发现”界面完善
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)frame2 {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)animated24 {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 }
最终效果:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。