У меня есть график, который рисуется внутри UIScrollView
. Он один большой UIView
, используя свой собственный подкласс CATiledLayer
в качестве своего слоя.
Когда я увеличиваю и уменьшаю масштаб из UIScrollView
, я хочу, чтобы график динамически изменялся так же, как и при возврате графика из viewForZoomingInScrollView
. Тем не менее, График перерисовывается на новом уровне масштабирования, и я хочу reset масштаб преобразования в 1x1, чтобы в следующий раз, когда пользователь увеличил масштаб, преобразование начинается с текущего вида. Если я reset преобразование в Identity в scrollViewDidEndZooming
, оно работает в симуляторе, но выбрасывает EXC_BAD_ACCSES
на устройстве.
Это даже не решает проблему полностью на симуляторе, так как при следующем увеличении размера пользователя трансляция сбрасывается до любого уровня масштабирования, на котором она была, и, похоже, если бы я был увеличен до 2x, например, внезапно в 4 раза. Когда я заканчиваю масштабирование, он заканчивается в правильном масштабе, но фактический акт масштабирования выглядит плохо.
Итак, во-первых: как разрешить графику перерисовывать себя в стандартном масштабе 1x1 после масштабирования и как добиться плавного увеличения масштаба?
Изменить: Новые результаты
Кажется, что ошибка "[CALayer retainCount]: message sent to deallocated instance
"
Я никогда не снимаю никаких слоев самостоятельно. Раньше я даже не удалял никаких взглядов или чего-то еще. Эта ошибка была выбрана при масштабировании, а также при повороте. Если я удалю объект перед ротацией и повторно добавлю его потом, он не будет генерировать исключение. Это не вариант масштабирования.