缩放UIView及其所有子节点

时间:2013-02-04 23:34:59

标签: ios objective-c uiview scale subview

我有一个大约有50个UIButton的UIView。所有按钮位置都以像素为单位,相对于我的主UIView的左上角。

视图中使用的所有(背景)图像都具有更高的分辨率。当我将我的应用程序从iPhone移植到iPad时,我想增加UIView的有效像素大小。

现在我正在寻找一种将整个UIView升级2倍的方法。这有可能在不破坏内部元素的位置的情况下吗?

仅供参考,UIView是在XCode的NIB文件中设计的。但是我不介意它是否可以通过编程方式完成。

4 个答案:

答案 0 :(得分:114)

我最终使用

self.view.transform = CGAffineTransformScale(CGAffineTransformIdentity, 2, 2);

它允许我保持在Interface Builder中创建的设计。

不幸的是,在这种情况下图像的清晰度会受到影响,但与以编程方式编写整个设计的脚本相比,这是一个很小的代价。

答案 1 :(得分:10)

Swift 3.0的更新

self.view.transform = CGAffineTransform(scaleX: 2.0, y: 2.0)

答案 2 :(得分:3)

对于Swift 4.0,缩放2x:

myView.transform = CGAffineTransform.identity.scaledBy(x: 2, y: 2)

答案 3 :(得分:2)

您可以首先以编程方式创建这些按钮,例如使用CGRectMake方法创建这些按钮,并将宽度和高度指定为X和Y,如果检测到ipad,则将其乘以2,它也应分别更改,如果彼此太靠近可能会导致重叠

编辑:这完全取决于你的逻辑,我也不确定