2015-05-27 48 views
1

我正在尝试使边栏菜单像app欧元运动一样!当菜单从左侧滑动时,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。所以,问题是如何缩放底部视图。就我而言,我可以改变尺寸,但视图内的所有内容仍然保持相同的尺寸。

回答

3

您可以使用CGAffineTransformScale规模的UIView

实例的实例

假设你有UIView

UIView *view; 

//可以说你已经实例化和个性化的实例您的看法

.. ..

//保持在变量中原始变换的视图作为

CGAffineTransform viewsOriginalTransform = view.transform; 

// //到再次按比例缩小的视图使用CGAffineTransformScale

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

放大视图

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

嗨,我添加了你的代码来缩放视图。它可以工作,但我的func offStage(金额:CGFloat) - > CGAffineTransform {C}返回CGAffineTransformMakeTranslation(金额,0) }不起作用。我不能将源视图控制器左移。如果我将该代码放在转换比例以下,那么缩放不工作 –

+0

您使用的是CGAffineTransformScale还是CGAffineTransformMakeTranslation? –

+0

我正在使用两个!但他们两个不一起工作!好吧,我会创建另一个问题 –

1

作为每苹果的文档的

的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 
+0

嗨,我添加了您的代码来缩放视图。它可以工作,但我的func offStage(金额:CGFloat) - > CGAffineTransform {C}返回CGAffineTransformMakeTranslation(金额,0) }不起作用。我不能将源视图控制器左移。如果我把这个代码放在变换表的下面,那么缩放不会起作用 –

+0

当它工作时,那么你在提出另一个与你的问题无关的问题,即“问题是如何缩放底部视图。问题是如何规模底部视图“。你应该接受它的解决方案。然后问你的问题另一个问题 – Vizllx

+0

你好,我有新的问题:http://stackoverflow.com/questions/30480350/how-to-choose-the-right-uigesturerecognizer-swift –