В каждой ячейке моего табличного представления я хочу иметь панель, которую пользователь может выдвинуть справа. На панели я планирую иметь значки. Итак, чтобы сделать это, я подкласс UITableViewCell. В ячейке я реализовал drawRect, и там я уже нарисовал градиент и цвет фона для ячейки. Оттуда я могу создать CALayer, задать ему цвет рамки и фона и добавить его в качестве подслоя в массив Views subLayers. Я могу сделать все это, и он будет отображать мой слой на каждом UITableViewCell.
Я добавил сенсорные события в ячейку, чтобы я мог определять, когда пользователь касается ячейки, и для тестирования я сделал это так, что когда пользователь проводит пальцем, мой CALayer становится шире. Но проблема в том, что когда UITableView прокручивает и повторно использует ячейку, чей CALayer был расширен, он не воссоздает CALayer. Я пытался
[myLayer setNeedsDisplay]
и использовал метод drawLayer: inContext своего делегата, и он не вызывается. Я также попытался вызвать вызов setNeedsDisplay для ячейки в моем UITableViewController, надеясь, что это вызовет перерисовку, но это не работает.
Я не уверен, что мне не хватает. Я новичок в CoreGraphics и CoreAnimation. Я прочитал Руководство по разработке CoreAnimation, но я предполагаю, что что-то упустил. Любая помощь будет великолепна.