テーブルビューの各セルに、ユーザーが右からスライドできるバーが必要です。バーにはアイコンを配置する予定です。したがって、これを行うために、UITableViewCell をサブクラス化しました。セルに drawRect を実装し、セルにグラデーションと背景色を既に描画しています。そこから、CALayer を作成し、フレームと背景色を指定して、サブレイヤーとして Views subLayers 配列に追加します。私はそれをすべて行うことができ、各 UITableViewCell に私のレイヤーを表示します。
セルにタッチイベントを追加して、ユーザーがセルに触れたときに検出できるようにし、テストのためにユーザーがスワイプするとCALayerが広くなるようにしました。しかし、問題は、UITableView がスクロールして CALayer が拡張されたセルを再利用すると、CALayer が再作成されないことです。私が試してみました
[myLayer setNeedsDisplay]
デリゲートの drawLayer:inContext メソッドを使用しましたが、呼び出されません。UITableViewController のセルで setNeedsDisplay を呼び出すことも試みましたが、再描画が発生することを期待していますが、機能しません。
何が欠けているのかわかりません。CoreGraphics と CoreAnimation は初めてです。CoreAnimation Developers Guide を読みましたが、何か足りないと思います。どんな助けでも素晴らしいでしょう。