2015-05-27 85 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 –