2012-08-29 78 views
0

我有一個tableview,我定製了視圖單元格,並且我想在它們上繪製陰影。我已經使用視圖的圖層,但如果我通過這種方式繪製陰影,我的tableview非常慢。 這是代碼:我怎樣才能爲我的uiview繪製陰影

UIView *foreground    = [[UIView alloc] initWithFrame:CGRectMake(8., 8., 305, 290.)]; 
foreground.tag     = kForegroundTag; 
foreground.backgroundColor  = [UIColor whiteColor]; 
/* Draw from here */ 
foreground.layer.shadowColor = [UIColor blackColor].CGColor; 
foreground.layer.shadowOpacity = 0.7; 
foreground.layer.shadowOffset = CGSizeMake(0., 1.); 
foreground.layer.shadowRadius = 3.; 

THX你的幫助

回答

0

圖紙使用這些屬性可以有表現不佳的陰影。您有幾個選項:

您可以在圖層上設置shouldRasterize以將其轉換爲將圖層呈現爲位圖而不是重繪(請注意:這僅在您的視圖不需要重繪時纔有用,如果在錯誤的場景中使用,最終可能會比現有的性能更差)

另一種選擇是也在圖層上使用shadowPath屬性。按照CALayer文檔:

通常指定明確的路徑提高了渲染性能

我肯定會使用shadowPath屬性,取決於視圖的性質,可能設置shouldRasterize標誌以及

+0

最近對Quora的回答也表明'shadowPath'屬性是要走的路,並給出了一個示例用法:http://www.quora.com/iOS-Development/What-are-some-tricks-to -make-an-iOS-app-feel-responsive/answer/Aditya-Herlambang – jonkroll

+0

THX你非常非常:D我現在有60fps :)鏈接的thx – marcL