如何改变视图的尺度

我正在尝试使应用欧元运动的边栏菜单! 当菜单从左侧滑动时, sourceviewcontroller向左滑动并变小。

 var percentWidthOfContainer = containerView.frame.width * 0.2 // this is 20 percent of width var widthOfMenu = containerView.frame.width - percentWidthOfContainer bottomView.transform = self.offStage(widthOfMenu) bottomView.frame.origin.y = 60 bottomView.frame.size = CGSizeMake(widthOfMenu, 400) bottomView.updateConstraints() menucontroller.view.frame.size = CGSizeMake(widthOfMenu, containerView.frame.height) menucontroller.updateViewConstraints() 

在这里,底部视图是sourceviewcontroller.view。 所以,问题是如何缩放底部视图。 在我的情况下,我可以改变大小,但视图内的一切仍然是相同的大小。

您可以使用CGAffineTransformScale来缩放UIView实例

例如

假设你有一个UIView的实例

 UIView *view; 

//可以说你已经实例化和定制你的视图

.. ..

//将视图的原始变换保存在variables中

 CGAffineTransform viewsOriginalTransform = view.transform; 

//缩小视图使用CGAffineTransformScale

 view.transform = CGAffineTransformScale(viewsOriginalTransform, 0.5, 0.5); 

//再次放大视图

 view.transform = CGAffineTransformScale(viewsOriginalTransform, 1.0, 1.0); 

根据苹果公司的文件

CGAffineTransform数据结构表示用于仿射变换的matrix。 转换指定一个坐标系中的点如何映射到另一个坐标系中的点。 仿射变换是一种特殊types的映射,保留path中的平行线,但不一定保留长度或angular度。 缩放,旋转和平移是仿射变换所支持的最常用的操作,但是也可能出现偏斜。

所以你的解决scheme,以最小化bottomView的大小: –

 bottomView.transform = CGAffineTransformMakeScale(0.2, 0.2) // you can change it as per your requirement 

如果你想调整它的大小或最大化它的原始大小:

 bottomView.transform = CGAffineTransformMakeScale(1.0, 1.0) 

以防万一你想扩大底部视图超过其大小:

  bottomView.transform = CGAffineTransformMakeScale(1.3, 1.3) // you can change it as per your requirement