【发布时间】:2011-01-04 08:35:23
【问题描述】:
在 WWDC2010 Session 104 之后,我刚刚在 UIScrollView 中为 10000 x 8078 像素的图像创建了一个 CATiledLayer。
当视图首次显示在其顶层时,我对框架和zoomScale 感到困扰
- 就像在会话 104 中一样,我将
levelsOfDetail定义为 4 - 在我的drawRect中我调用
CGFloat lScale = CGContextGetCTM(lContext).a;
奇怪的是,在运行时 lScale 被分配了 0.124907158,而不是预期的 0.125。
传递给drawRect 的rect 也有浮点值,例如
- rect.origin.x = 4099.04443
- rect.origin.y = 6144
- rect.size.width = 2049.52222
- rect.size.height = 2048
最让我恼火的是CATiledLayer 的框架显示的原点是 0 x 26.93,即使我使用 initWithFrame 使用 0x0 原点创建了 tiledImageView。
我有什么想法可以找到对此负责的计算吗?
编辑: 我找到了奇怪框架位置的来源,即 ScrollView 边界被错误地设置为 450 像素。那应该是 420 像素。 UIScrollView 中的 layoutSubview 例程有一个中心视图例程,它无意中调整了 y 坐标。
【问题讨论】:
标签: iphone uiscrollview catiledlayer