美文网首页iOS
iOS UITableView的sectionHeader代理方

iOS UITableView的sectionHeader代理方

作者: 游龙飞雪 | 来源:发表于2016-12-12 23:28 被阅读647次

    在iOS实际开发中,很多时候都会遇到设置tableView的组头。

    除了直接设置  【tableView.tableHeaderView = [[UIView alloc] initWithFrame:<#(CGRect)#>];】  之外,最常用的就是使用tableView的代理方法  【- (UIView*)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section;】。

    但是有一个问题,很多时候我们设置了tableView的grouped样式,遵循了协议,设置了数据源和代理,上面这个返回组头view的代理方法还是不走。

    究其原因,是因为在使用返回组头的代理方法时,必须要设置tableView的 sectionHeader 的高度。

    //设置组头的高度-如果需要自定义组头视图,一定要设置行高,否则不走代理方法!【tableView.sectionHeaderHeight = 22;】。

    在Xcode8正式版之前我们可以通过以上代码设置sectionHeaderHeight,没有问题。但是最近使用Xcode8.1时明明按照以上方法设置组头的高度,返回组头的代理方法还是不走,百思不得其解。忽然灵机一动,使用代理返回组头高度试试: 

    【- (CGFloat)tableView:(UITableView*)tableView heightForHeaderInSection:(NSInteger)section 】

    使用代理方法设置组头高度之后,此问题解决了(使用设置 预估组头行高 的代理方法也可)……  就是这么怪异……

    此问题解决,也希望能帮到遇到同样问题的你!

    PS:这里多说一句,就是在返回组头的代理方法中,如果使用系统默认的组头的textLabel,我们在设置字体的时候会不正常,所以这里尽量自定义组头view。 -end

    ——共同进步!

    相关文章

      网友评论

      本文标题:iOS UITableView的sectionHeader代理方

      本文链接:https://www.haomeiwen.com/subject/erjvmttx.html