после сессии WWDC2010 104 Я только что создал CATiledLayer в UIScrollView
для изображения 10000 x 8078 px.
У меня проблемы с рамкой & zoomScale
, когда представление впервые отображается на верхнем уровне
- как в сеансе 104, я определил
levelsOfDetail
как 4
- в моем drawRect я звоню
CGFloat lScale = CGContextGetCTM(lContext).a;
Странно, во время выполнения lScale назначено 0,124907158, а не 0,125, как ожидалось.
Также rect
, переданный в drawRect
, имеет значения с плавающей точкой, такие как
- rect.origin.x = 4099.04443
- rect.origin.y = 6144
- rect.size.width = 2049.52222
- rect.size.height = 2048
Самое неприятное для меня то, что рамка CATiledLayer
показывает начало координат 0 x 26,93, хотя я создал tiledImageView, используя initWithFrame
, используя источник 0x0.
Любые идеи, где я могу найти расчет, который отвечает за это?
EDIT:
Я нашел источник для странной позиции кадра, то есть границы ScrollView, которые были неправильно установлены в 450 пикселей. это должно быть 420 пикселей. Подпрограмма layoutSubview в UIScrollView имеет подпрограмму центрального вида, которая непреднамеренно корректировала координату y.