LoginSignup
3
3

More than 5 years have passed since last update.

CGRectをオフセットする方法

Posted at

描画用の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}}

この記事は2013-08-23の記事の転載です。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3