kitoko552.memo

kitoko552のメモ

UIViewのframeとboundsの違い

以下の例を見た方がはやいです。

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let view1 = UIView(frame: CGRectMake(50, 50, 300, 550))
        println(view1.frame) // (50.0, 50.0, 300.0, 550.0)
        println(view1.bounds) // (0.0, 0.0, 300.0, 550.0)

        let view2 = UIView(frame: CGRectMake(30, 40, 200, 100))
        println(view2.frame) // (30.0, 40.0, 200.0, 100.0)
        println(view2.bounds) // (0.0, 0.0, 200.0, 100.0)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

つまり、frameは親viewの座標系におけるviewの位置を表し、boundsはそのviewから見たviewの位置(x, yはどちらも0)を表します。

※この記事は以下の本を参考にしています。

詳解 iOS SDK 第4版 ―ワンランク上のiPhone/iPadプログラミング

詳解 iOS SDK 第4版 ―ワンランク上のiPhone/iPadプログラミング