2009-09-18 61 views
1

我有一个视图层次结构作为UIScrollView实例的子视图。视图层次结构使用简单的容器视图作为水平行子视图贴图的包装器,每个子视图贴图都是覆盖drawRect的UIView子类。没有什么花哨。UIScrollView子视图在缩放时不保留正确的边界尺寸

作为一个完整性检查,我重复每个子视图图块的边界,框架和变换。令我惊讶的是,在变焦过程中,每一个都保持不变!这是一个大问题,因为我打算在完成缩放序列后重新绘制每个图块。没有正确的尺寸这是不可能的。

如果他们有完全不正确的dimentsions,我们应该如何在这些瓷砖中使用Quartz进行自定义绘图。

有人请赐教。谢谢。

干杯,

道格

回答

0

我可能是错的,但这些都只是逻辑尺寸;它们将根据UIScrollView对它们的转换进行缩放,旋转和变形。显示上下文也应该类似地变形,因此它应该像往常一样用于drawRect:方法。

+0

为清楚起见,我呼应self.bounds,self.frame和self.transform在重写的drawRect:每个子视图 “砖” 的矩形方法。除非这些属性都具有精确的像素尺寸,否则无法正确呈现每个图块的内容。 “逻辑维度”是什么意思?边界,框架和变换是定义筛选器上UIView的位置和方向的基本几何属性。 – dugla 2009-09-18 10:55:58

0

UPDATE

问题解决了。我忘记考虑正在考虑的协调框架。通过检查超级框架/边界/变换,它们确实在变焦过程中发生了变化。子视图绘制发生在当地的坐标系中,然后由父变换进行缩放。

没有在这里看到,移动。

干杯,

道格