kitoko552.memo

kitoko552のメモ

CGRectInsetの使い方

SwiftのCGRectInsetは、ある矩形から指定した余白分を除外した矩形を取得するメソッドです(もちろんObjective-Cも同じ)。 CGRectInsetの定義は以下のようになっています。

/**
 * :param rect 元になる矩形
 * :param dx 横の余白
 * :param dy 縦の余白
 */
func CGRectInset(rect: CGRect, dx: CGFloat, dy: CGFloat) -> CGRect

例を以下に示します。

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let view1 = UIView(frame: CGRectMake(50, 50, 300, 550))
        view1.backgroundColor = UIColor.greenColor()
        
        // view1との相対位置が(30, 20, 240, 510)となり、
        // 絶対位置(self.viewとの相対位置)が(80, 70, 240, 510)となる。
        let view2 = UIView(frame: CGRectInset(view1.bounds, 30, 20))
        view2.backgroundColor = UIColor.yellowColor()
        
        view1.addSubview(view2)
        self.view.addSubview(view1)
    }

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

このようにすると、以下のような結果となります。

f:id:kitoko552:20150624103326p:plain

また、dx, dyを負の値にすることで、元の矩形からdx, dy分大きい矩形を作成することも可能です。

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

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

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