iOS11 SectionHeader 胡乱移动且滑动时出现重复内容的解决方法
程序员文章站
2023-12-20 11:54:46
升级到ios 11后,痛苦的事情多起来了,以前版本没有的出现问题的代码,经过xcode 9一编译,千万*奔腾而过;
今天碰到一个奇葩问题,直接进入主题:
问题描述:...
升级到ios 11后,痛苦的事情多起来了,以前版本没有的出现问题的代码,经过xcode 9一编译,千万*奔腾而过;
今天碰到一个奇葩问题,直接进入主题:
问题描述:
-(cgfloat)tableview:(uitableview *)tableview heightforheaderinsection:(nsinteger)section { return 12; } -(uiview *)tableview:(uitableview *)tableview viewforheaderinsection:(nsinteger)section { uiview* headersection_v = [[uiview alloc]initwithframe:cgrectmake(zerodis, zerodis, screen_width, 12)]; [headersection_v setbackgroundcolor:color_3]; return headersection_v; }
1- headerview 会错乱移动, 且调整tableview 的style也没有效果;
2- 滑动tableview的时候, 貌似底部又多出一个图层tableview,重复了tableviewcell的内容;
3- 以下代码无效:(当然tableview 懒加载的时候 还有相应代码设置cell分割线的偏移)
/** * 解决cell分割线距离两边12 居中对齐 */ - (void)tableview:(uitableview *)tableview willdisplaycell:(uitableviewcell *)cell forrowatindexpath:(nsindexpath *)indexpath { if ([cell respondstoselector:@selector(setseparatorinset:)]) { [cell setseparatorinset:uiedgeinsetsmake(zerodis, 12, zerodis, 12)]; } if ([cell respondstoselector:@selector(setlayoutmargins:)]) { [cell setlayoutmargins:uiedgeinsetsmake(zerodis, 12, zerodis, 12)]; } }
最后排查发现:
旧代码使用了xib但是又没有用xib的tableview, tableview又是自己代码生成的, 把xib删除之后,就ok了;
ps:下面通过实例代码给大家分享uitableview sectionheader 自定义section的头部。
具体代码如下所示:
//自定义section的头部 - (uiview *)tableview:(uitableview *)tableview viewforheaderinsection:(nsinteger)section { uiview *headerview = [[uiview alloc] initwithframe:cgrectmake(10, 0, 300, 30)];//创建一个视图 uiimageview *headerimageview = [[uiimageview alloc] initwithframe:cgrectmake(10, 0, 300, 30)]; uiimage *image = [uiimage imagenamed:@"4-2.png"]; [headerimageview setimage:image]; [headerview addsubview:headerimageview]; [headerimageview release]; nsstring *createtime = [self.keysarray objectatindex:section]; createtime = [createtime stringbyreplacingcharactersinrange:nsmakerange(4, 1) withstring:@"-"]; createtime = [createtime stringbyreplacingcharactersinrange:nsmakerange(7, 1) withstring:@"-"]; uilabel *headerlabel = [[uilabel alloc] initwithframe:cgrectmake(130, 5, 150, 20)]; headerlabel.backgroundcolor = [uicolor clearcolor]; headerlabel.font = [uifont boldsystemfontofsize:15.0]; headerlabel.textcolor = [uicolor bluecolor]; headerlabel.text = createtime; [headerview addsubview:headerlabel]; [headerlabel release]; return headerview; }
总结
以上所述是小编给大家介绍的ios11 sectionheader 胡乱移动且滑动时出现重复内容的解决方法,希望对大家有所帮助