设置子视图的layer.cornerRadius后iOS UITableView滚动不顺畅[重复]
Posted
技术标签:
【中文标题】设置子视图的layer.cornerRadius后iOS UITableView滚动不顺畅[重复]【英文标题】:iOS UITableView scroll not smoothly after set the layer.cornerRadius of subviews [duplicate] 【发布时间】:2015-09-25 16:47:11 【问题描述】:我正在使用UITableView
制作日历视图(见下图),每个UITableViewCell
代表一个月有几个子视图,每个子视图意味着有一天我们称它为DayView
,每个DayView
包含一个子视图 UILabel 显示月份中的哪一天。到现在为止,一切似乎都很好,UITableView
的滚动流畅。但是在我在DayView
的- (instancetype)initWithFrame:(CGRect)frame
中添加这一行之后:
self.layer.cornerRadius = 5.0;
UITableView 的帧率在滚动时变得非常低。它根本赶不上我的手指。那么最可能的原因是什么?
顺便问一下,这种问题应该怎么解决?
谢谢。
编辑:
cellForRowAtIndexPath
方法:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *monthCellIdentifier = @"MonthCell";
OPCalendarPageView *cell = [tableView dequeueReusableCellWithIdentifier:monthCellIdentifier];
cell.manager = _manager;
cell.date = [self dateForIndexPath:indexPath];
return cell;
我正在使用库JTCalendar,OPCalendarPageView
是JTCalendarPageView
的自定义版本,只是在月份的第一天上方添加了一个月份标签。
【问题讨论】:
为什么每天视图都需要圆角? 请添加-cellForRowAtIndexpath的代码: @rmaddy 我只是想让日视图的形状不是矩形,然后发现了这个问题。 好的,但是您显示的图像是白底白字,没有边框。圆角的日子看起来有什么不同? 好吧,我想在日视图中添加更多元素,例如不同的背景颜色、事件标记等,这样它们看起来会随着圆角而不同。 【参考方案1】:首先,请多提一点,比如你的子视图的场景,或者你设置的其他属性,比如border-width、masktobound或cliptobound等,而不是设置角半径。
其次, 我不确定,但我已经解决了我的问题,设置如下行
self.layer.masksToBounds = YES;
或者如果此解决方案不起作用,请尝试以下链接,其中fknrdcls 以适当的方式给出了非常好的答案,以保护角半径对 uitableview 的负面影响。 基本上 uitableview 是 uiscrollview 的子类,所以下面的解决方案可能会解决您的问题。
UILabel layer cornerRadius negatively impacting performance
【讨论】:
这真的成功了,太棒了!以上是关于设置子视图的layer.cornerRadius后iOS UITableView滚动不顺畅[重复]的主要内容,如果未能解决你的问题,请参考以下文章
UIlabel layer.cornerRadius在iOS 7.1中不起作用
较小尺寸的按钮不是带有 layer.cornerRadius 的圆形