CGRectをオフセットする方法
描画用のCGRectを用意する際に、イラレ的な感覚で矩形をオフセット(ピクセル単位でパスを拡張)したかったのですが、
CGRectOffsetかと思いきや、CGRectInsetを使うと簡単にできました。
GCRect CGRectInset(CGRect rect, CGFloat dx, CGFloat dy)
もとのCGRectと、内側に拡張したい数値を入れると新しいCGRectが生成されます。
dx, dyをマイナスにすると外側に広がった矩形が生成できます。
CGRect rect = CGRectMake(0, 0, 100, 100); CGRect insetRect = CGRectInset(rect, 10, 10); NSLog(@"CGRectInset %@",NSStringFromCGRect(insetRect)); //CGRectInset {{10, 10}, {80, 80}}
drawRectメソッドの中などで枠線の幅を考慮した計算が必要になることがありますが
そういう描画用の矩形を生成するときに便利です。
CGRectOffsetはIFが似てますが、始点(rect.origin)を動かしたCGRectを作る関数みたいです。
GCRect CGRectInset(CGRect rect, CGFloat dx, CGFloat dy)
CGRect rect = CGRectMake(0, 0, 100, 100); CGRect offsetRect = CGRectOffset(rect, 10, 10); NSLog(@"CGRectOffset %@",NSStringFromCGRect(insetRect)); //CGRectOffset {{10, 10}, {100, 100}}