2011-05-11 69 views
0

我想爲自定義表格滾動視圖中的每個單元格背景使用CAGradientLayer。如果我爲每個單元格分配CAGradientLayer,滾動速度很慢,所以我想以某種方式重用每個單元格的梯度,以便如何在UIImageView中重用UIImage。這樣的事情可能嗎?如何重複使用CALayer

gradient = [CAGradientLayer new]; 
     gradient.frame = innerView.bounds; 
     gradient.colors = [NSArray arrayWithObjects:(id)topColor.CGColor, (id)bottomColor.CGColor, nil]; 
     //gradient.shouldRasterize = YES; 
    [innerView.layer insertSublayer:gradient atIndex:0]; 
+0

你是什麼意思的自定義表滾動視圖?它是一個UITableView,UIScrollView,UIView?我們在說什麼習俗?如果它是UITableView,並且使用了dequeueReusableCellWithIdentifier:您應該只爲可見單元格設置漸變圖層,並且在滾動時不會爲每個單元格重新創建漸變圖層。 – kball 2011-05-11 11:13:45

+0

它基本上是一個帶有UIView單元的滾動視圖。這些細胞的背景是我試圖將漸變放在上面。 – Morrowless 2011-05-12 03:39:18

回答

0

我發現我可以簡單地使該斜率(renderInContext:)轉換成使用UIGraphicsBeginImageContext()上下文和重複使用它而獲得的圖像。