Пожалуйста, посмотрите этот простой пример CATiledLayer https://github.com/seanhess/CATiledLayer-Example
Он состоит из одного viewController с такой иерархией:
view: (frame = window size)
scrollView: (frame = window size, content size = 200 x 4000)
contentView: (frame = content size = 200 x 4000, tile size = 100 x 100)
Слой представления содержимого был переопределен как CATiledLayer.
Если вы запустите связанный код, вы увидите, что плитки с одним и тем же прямоугольником запрашиваются несколько раз . Это происходит как при первом запуске кода, так и при прокрутке.
Переключиться на ветку «один столбец» - это происходит только при инициализации, а не при прокрутке вниз.
Переключиться на ветку "default-tile-size" - это происходит только при инициализации, но очень редко (вам нужно запустить его несколько раз, прежде чем это произойдет)
Я пытаюсь написать код в drawLayer:inContext:
, который находит правильные данные и рисует их. Это может быть дорого, и я не хочу делать это более одного раза.
Есть идеи, что происходит? Что я мог сделать по-другому?