2013-01-08 39 views
3

可能重複:
Drawing shadow with Quartz is slow on iPhone & iPad. Another way?UIImageView - 爲什麼添加陰影會降低速度?

我創建了下面的輔助方法,將陰影添加到我的UIImageViews。它看起來不錯,但我注意到它顯着降低了圖形渲染速度,並且在旋轉設備時它看起來特別糟糕。我也得到一個偶然Received memory warning.

- (void)addShadowToImageView:(UIImageView *)imageView; 
{ 
    imageView.layer.shadowColor = [UIColor lightGrayColor].CGColor; 
    imageView.layer.shadowOffset = CGSizeMake(0, 1); 
    imageView.layer.shadowOpacity = 1; 
    imageView.layer.shadowRadius = 1.0; 
    imageView.clipsToBounds = NO; 
} 

我怎樣才能優化性能這個效果呢?

+0

這是在一個較新的設備上?我知道使用CALayer的舊設備非常慢,但我還沒有看到新設備(iphone 4和更高版本)設備明顯放緩 –

+0

您多久一次調用此方法? –

+0

爲什麼不嘗試構建項目以進行性能分析,然後使用時間事件探查器一次查看哪些內容使用了大部分CPU? – jakenberg

回答

1

我想看看這篇文章:

Drawing shadow with Quartz is slow on iPhone & iPad. Another way?

它的要點是,你應該使用的CALayer的shadowPath財產,因爲這是CoreGraphics中如何能夠優化陰影。事實上,如果您查看此屬性的文檔,您將看到位

指定顯式路徑通常會改善呈現性能。

作爲一般規則,直接操作UIView的圖層(做陰影或角落半徑等操作)往往會顯着降低性能。

+0

謝謝。是的,我不知道這樣緩慢地渲染陰影。我會牢記這一點。 –