2017-08-01 108 views

回答

1

爲了幫助理解什麼範圍呢,運行在一個視圖控制器的viewDidLoad方法此示例代碼:

let newView = UIView(frame: CGRect(x: 50, y: 100, width: 30, height: 30)) 
newView.backgroundColor = UIColor.blue 

let secondView = UIView(frame: CGRect(x: 0, y: 0, width: 20, height: 20)) 
secondView.backgroundColor = UIColor.red 

newView.addSubview(secondView) 


view.addSubview(newView) 

DispatchQueue.main.asyncAfter(deadline: .now() + 1) { 

    newView.bounds = CGRect(x: 10, y: 0, width: 30, height: 30) 
} 

這裏,我們通過移動邊界向右10分,所以你會看到「第二視圖」(紅色)向左移動10分。

更改邊界的原點將更改視圖的座標系,這將影響其所有子視圖的位置。但是,它的超級觀點並不影響其來源。爲此,您應該更改框架的原點。

+0

當它說「x:10」時,它是什麼十個? –

+0

這是10分,我有一個答案,討論什麼點[這裏](https://stackoverflow.com/a/45083468/5099014)。 [This](http://iosres.com)也很有用(請參閱邏輯分辨率)。 –

+0

那麼10點相對於什麼? –

0

界只考慮widthheight,你只改變了origin在你的榜樣,只有改變x要精確。要做到這一點使用frame屬性:

v2.frame = CGRect(-2000, 0, 70, 70) 
+0

這是堅果。如果只設置寬度和高度,爲什麼界限是CGRect? –

+0

它是自己座標系中的矩形,主要用於操作。 這裏的文檔:https://developer.apple.com/documentation/uikit/uiview/1622580-bounds – zero

相關問題