动态调整另一个UIView中的UIViews大小

时间:2014-03-05 18:22:37

标签: ios objective-c

我希望创建一个缩放比例,根据用户与视图的交互方式进行调整 - 放大/缩小。我的观点固定在我的观点的顶部中心。我只想调整此视图的宽度,例如在用户放大时加宽水平视图,反之亦然。视图本身包含4个表示左右刻度的UIView,一个中心刻度线和一个基本上像这样连接所有内容的水平视图:

| ------ | ------ |

我的比例视图是包含其他4个视图的容器。我很好奇我是否应该使用自动布局,以便视图根据包含这些其他视图的视图框架进行调整?或者还有另一种方法吗?使用CALayer并使用变换来绘制它?

2 个答案:

答案 0 :(得分:0)

我个人可能会选择autoresizingMasks,它们对我来说往往非常一致,至少在以编程方式分配时。 InterfaceBuilder是另一个故事。

topView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin;

基本上,这意味着底部边距(从顶视图的底部到其父视图的底部)是灵活的,topView的宽度也是灵活的。所有其他保证金将保持不变。因此,无论父视图的大小如何,topView左侧的父视图左侧始终都是相同的。与右侧相同,topView将适当拉伸以保持这些边距,因为它被赋予了具有灵活宽度的权利。

可能有其他方法可以做到这一点,但希望这有助于您提供一些想法。

答案 1 :(得分:0)

我想这里的问题是“四个UIViews”。

相反,使一个 UIView:一个知道如何绘制自己作为比例测量显示的视图,根据实际数量调整自己的图形(它应该在100%的时间长度,多远我们放大或缩小。)

然后只需每次进行缩放时重绘(通过滚动视图委托方法轻松检测)。

您最初可能使用过“四个UIViews”,因为您不知道如何实时绘制。但它对iOS编程至关重要,所以继续学习如何做到这一点,你会更快乐。