2017-08-01 1 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ポイントであるので、「第2のビュー」(赤色)が10ポイント左に移動します。

境界の原点を変更すると、ビューの座標系が変更され、ビューのすべてのサブビューの位置に影響します。しかし、それはそのスーパービューに関してその起源に影響を与えません。そのためには、フレームの原点を変更する必要があります。

+0

「x:10」と表示されたら、それは何ですか? –

+0

10ポイントですが、私は何点が[ここ](https://stackoverflow.com/a/45083468/5099014)であるかを解説しています。 [This](http://iosres.com)も便利です(論理的な解決策を参照)。 –

+0

それで10ポイントは何に相対的ですか? –

0

境界のみアカウントwidthheightにとり、あなただけのだけ正確にxを変え、あなたの例ではoriginを変更しています。この使用にframeプロパティ達成するために:境界が何をするかを理解しやすくするために

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

これはナッツです。幅と高さのみを設定すると、境界がCGRectの理由は何ですか? –

+0

主に操作のために、それ自身の座標系上の矩形です。 ここでドキュメント:https://developer.apple.com/documentation/uikit/uiview/1622580-bounds – zero

関連する問題