如何更改视图的比例

时间:2015-05-27 07:14:44

标签: ios swift view scale

我正在尝试使用应用程序Euro Sport中的侧边栏菜单!当菜单从左侧滑动时,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。所以,问题是如何扩大底部视图。在我的情况下,我可以改变大小,但视图内的所有内容仍然是相同的大小。

2 个答案:

答案 0 :(得分:5)

您可以使用CGAffineTransformScale来扩展UIView

的实例

For Instance

假设您有一个UIView实例

UIView *view;

//假设您已实例化并自定义了视图

.. ..

//将视图的原始变换保存为变量

CGAffineTransform viewsOriginalTransform = view.transform;

//缩小视图使用CGAffineTransformScale

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

//再次放大视图

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

答案 1 :(得分:1)

根据Apple doc's

  

CGAffineTransform数据结构表示用于的矩阵   仿射变换。转换指定了一个点中的点   坐标系统映射到另一个坐标系中的点。一个   仿射变换是一种保留的特殊映射类型   路径中的平行线但不一定保留长度或   角。缩放,旋转和平移是最常用的   由仿射变换支持的操作,但也是倾斜   可能的。

所以你的解决方案是最小化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