2010-03-26 35 views
0

使用的CALayer在我的表視圖的每個單元我想有用戶可以從右側滑出了吧。在酒吧我打算有圖標。所以,爲此我分類了UITableViewCell。在單元格中我已經實現了drawRect,並且在那裏我已經在單元格上繪製了漸變和背景顏色。從那裏,我可以創建一個CALayer,給它一個框架&背景顏色,並將其作爲子層添加到Views subLayers數組中。我可以做到這一切,它會在每個UITableViewCell上顯示我的圖層。在UITableViewCell中

我已經添加了觸摸事件的細胞,所以當用戶觸摸電池我可以檢測和測試我已經說得那麼當用戶刷卡,我的CALayer變得更寬。但問題是,當UITableView滾動並重新使用CALayer被擴展的單元時,它不會重新創建CALayer。我試過

[myLayer setNeedsDisplay] 

並且使用其委託的drawLayer:inContext方法,並且它不被調用。我也曾嘗試在我的UITableViewController的單元格上告訴調用setNeedsDisplay,希望這會導致重繪,但它不起作用。

我不確定我錯過了什麼。我是CoreGraphics & CoreAnimation的新手。我已閱讀CoreAnimation開發人員指南,但我假設我錯過了一些東西。任何幫助都會很棒。

回答

0

我加了一個封閉的變換,並打開轉換到CALayer的。在表視圖控制器的scrollViewWillBeginDragging中,我遍歷所有可見單元格並調用應用我的閉合變換來重置菜單。