UITableViewCell调用.layer.在子视图性能问题中,maskToBounds = YES



我有一个自定义的UITableViewCell,包含一个UILabel,我想有圆角。就像我之前做过很多次一样,我设置了角落半径,并使用maskToBounds来编程地做到这一点。单元格本身是在Storyboard中创建的。我从UITableViewCellawakeFromNib方法调用此代码。

- (void)awakeFromNib {
// Initialization code
_distanceLabel.layer.cornerRadius = 2.0;
_distanceLabel.layer.masksToBounds = YES; }

这工作,但我可以看到一个明显的性能问题,现在当tableViewController被推到导航堆栈。在我的设备(iPhone 6)上运行时,tableViewController的动画现在从右滑动时口吃。当我注释出_distanceLabel.layer.masksToBounds = YES;行时,推动画工作良好,像正常一样平滑滑动。

我做了多年的应用程序,这是我第一次看到这个问题。有人知道这里发生了什么以及如何解决这个问题吗?

首先尝试设置这个,

self.layer.masksToBounds = YES;

或者如果这个解决方案不起作用,那么请尝试以下链接,其中FKNRDCLS以适当的方式给出了非常好的答案,以保护拐角半径对uitableview的负面影响。
基本上uitableview是uiscrollview的子类,所以下面的解决方案可能是解决你的问题。

UILabel layer cornerRadius对性能的负面影响

CornerRadius有时会影响uitableview的性能。

相关内容

  • 没有找到相关文章

最新更新