UITableViewCell在子视图性能问题

时间:2015-10-09 09:50:50

标签: ios performance uitableview uinavigationcontroller awakefromnib

我有一个自定义UITableViewCell,其中包含我想要圆角的UILabel。就像我在设置角半径之前做了很多次并使用maskToBounds以编程方式执行此操作。单元格本身是在Storyboard中创建的。我使用awakeFromNib的{​​{1}}方法调用此代码。

UITableViewCell

这很有效,但是当tableViewController被推送到导航堆栈时,我现在可以看到明显的性能问题。 tableViewController的动画现在在我的设备(iPhone 6)上运行时从右侧滑入时会断断续续。当我注释掉- (void)awakeFromNib { // Initialization code _distanceLabel.layer.cornerRadius = 2.0; _distanceLabel.layer.masksToBounds = YES; } 行时,推送动画工作正常并像平常一样顺利滑动。

我多年来一直在制作应用程序,这是我第一次看到这个问题。任何人都知道这里发生了什么以及如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

首先尝试设置此项,

self.layer.masksToBounds = YES;

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

  

UILabel layer cornerRadius negatively impacting performance

CornerRadius有时会影响uitableview的性能。