tableView设置UITableViewStyleGrouped顶部有空余高度
标签:
stylegrouped |
分类: IOS开发笔记 |
我们在开发中很多地方会使用tableView,tableView默认的类型是UITableViewStylePlain。我们在设置分区的时候,需要设置区头和区尾的高度。默认高度大概是17。具体的没有记清楚,这都不是主要的。
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section;
如果需要分区一定要添加上面的两个代理方法,设置区头区尾的高度,且不能设置为0,那样子没有任何设置效果的。
如果区尾不需要设置高度,可设置为0.1f。但不能为设置0。
这种类型的table,区头和区尾都是有粘性,会一直显示在当前的区上。但有时候我们不需要这种效果,就得需要去粘性,我们可以把类型设置为UITableViewStyleGrouped。那么问题来了:
http://s15/mw690/005COTsZgy6YjbTSYYCbe&690
这是我们想要的效果,上面的间隔会随着table一起往上移动。
在IOS8之前,我们只需要设置UITableViewStyleGrouped就可以了,嵌入到ScrollView中时,设置self.automaticallyAdjustsScrollViewInsets=NO;即可。
但是在ios8之后,再那样子设置好像已经不起作用了。
http://s5/bmiddle/005COTsZgy6YjdqrAR654&690
比设置的要高出了一部分,
试了好多方法,终于找到原因了,在IOS8之后,table设置StyleGrouped类型,需要设置tableHeaderView,
这样才有效,把tableHeaderView = nil,也是没有用。需要创建一个view实例,且frame不能设置为CGRectZero。
我是这样子写的:
table.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, zScreenWidth, CGFLOAT_MIN)];
这样子设置后,运行就和我们想要的效果一样了!
希望可以帮到有需要的小伙伴,如果谁有更好的方法,可以吐槽一下啊!
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection
如果需要分区一定要添加上面的两个代理方法,设置区头区尾的高度,且不能设置为0,那样子没有任何设置效果的。
如果区尾不需要设置高度,可设置为0.1f。但不能为设置0。
这种类型的table,区头和区尾都是有粘性,会一直显示在当前的区上。但有时候我们不需要这种效果,就得需要去粘性,我们可以把类型设置为UITableViewStyleGrouped。那么问题来了:
http://s15/mw690/005COTsZgy6YjbTSYYCbe&690
这是我们想要的效果,上面的间隔会随着table一起往上移动。
在IOS8之前,我们只需要设置UITableViewStyleGrouped就可以了,嵌入到ScrollView中时,设置self.automaticallyAdjustsScro
但是在ios8之后,再那样子设置好像已经不起作用了。
http://s5/bmiddle/005COTsZgy6YjdqrAR654&690
比设置的要高出了一部分,
试了好多方法,终于找到原因了,在IOS8之后,table设置StyleGrouped类型,需要设置tableHeaderView,
这样才有效,把tableHeaderView = nil,也是没有用。需要创建一个view实例,且frame不能设置为CGRectZero。
我是这样子写的:
table.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, zScreenWidth, CGFLOAT_MIN)];
这样子设置后,运行就和我们想要的效果一样了!
希望可以帮到有需要的小伙伴,如果谁有更好的方法,可以吐槽一下啊!
前一篇:引入第三方编译报错

加载中…