我正在尝试使用应用程序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。所以,问题是如何扩大底部视图。在我的情况下,我可以改变大小,但视图内的所有内容仍然是相同的大小。
答案 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