我使用UITableView
構建新聞Feed列表表。對於每一行我創建矩形電池使用內部定製UITableViewCell
類QuartzCore layer.shadow
示例代碼映射:使用layer.shadow時的Objective-C性能優化
-(void)drawRect:(CGRect)rect
{
UIView *bgView = [[UIView alloc] initWithFrame:self.bounds];
bgView.backgroundColor = [UIColor whiteColor];
bgView.layer.shadowColor = [UIColor blackColor].CGColor;
bgView.layer.shadowOffset = CGSizeMake(0, 1);
bgView.layer.shadowOpacity = 0.2;
bgView.layer.shadowRadius = 1;
self.backgroundView = bgView;
[bgView release];
}
當我測試應用程序,滾動UITableView
,滾動性能差!如果我刪除了影子,表現很好!
我需要您的建議。爲了獲得最佳性能,我可以做什麼樣的優化?
當我做了shouldRasterize = YES;陰影質量變差。 – 2012-08-06 07:42:28
@AlmasAdilbek就像我說的那樣,這只是一個開啓以進一步提高性能的選項。您不必啓用它,並且在某些情況下甚至會導致結果變差(並堵塞內存)。 – JustSid 2012-08-06 07:57:04
如果啓用了shouldRasterize,則還必須設置rasterizationScale = [UIScreen mainScreen] .scale,否則即使在Retina設備上也會以標準def渲染(這可能是因爲它看起來很糟糕)。 – 2013-04-26 11:29:33