我有一个UIView,里面有大约50个UIButtons。所有按钮的位置都是相对于我的主UIView的左上角以像素为单位给出的。
视图中使用的所有(背景)图片都有更高的分辨率。由于我正在将我的应用程序从iPhone移植到iPad,我想增加UIView的有效像素大小。
现在我正在寻找一种方法将整个UIView放大2倍,而不破坏内部元素的位置。这可能吗?
顺便说一下,UIView是在XCode中的NIB文件中设计的。但如果可以通过编程实现也无妨。
我有一个UIView,里面有大约50个UIButtons。所有按钮的位置都是相对于我的主UIView的左上角以像素为单位给出的。
视图中使用的所有(背景)图片都有更高的分辨率。由于我正在将我的应用程序从iPhone移植到iPad,我想增加UIView的有效像素大小。
现在我正在寻找一种方法将整个UIView放大2倍,而不破坏内部元素的位置。这可能吗?
顺便说一下,UIView是在XCode中的NIB文件中设计的。但如果可以通过编程实现也无妨。
我最终使用了
self.view.transform = CGAffineTransformScale(CGAffineTransformIdentity, 2, 2);
它使我能够保留在Interface Builder中创建的设计。
不幸的是,在这种情况下,图像的清晰度会受到影响,但与编写整个设计的脚本相比,这只是一个小代价。
self.view.transform = CGAffineTransformMakeScale(2, 2);
翻译:将self.view的缩放比例变为2倍。 - hatfinchmyView.transform = CGAffineTransform.identity.scaledBy(x: 2, y: 2)
Swift 4:myView.transform = CGAffineTransform.identity.scaledBy(x: 2, y: 2)
- huync适用于Swift 4.0,缩放比例为2x:
myView.transform = CGAffineTransform.identity.scaledBy(x: 2, y: 2)
Swift 3.0 更新
self.view.transform = CGAffineTransform(scaleX: 2.0, y: 2.0)
您可以首先使用CGRectMake
方法编程创建这些按钮,并将宽度和高度设置为X和Y,如果检测到iPad,则乘以2,对于原点,它也应相应更改,如果太靠近彼此可能会重叠。
编辑:这完全取决于您的逻辑,我也不确定。
self.view.transform = CGAffineTransformScale(CGAffineTransformIdentity, 2, 2);
- Bryan Chen