(元)CGRectInset、CGRectOffset、frame、dounds

1633 ワード

1、CGRectInset
CGRect CGRectInset (
   CGRect rect,
   CGFloat dx,
   CGFloat dy
);

この構造体の応用は,元rectを中心にdx,dyを参照してスケーリングまたは増幅する.
テスト:
CGRect rect = CGRectMake(10.0, 10.0, 100.0, 100.0);
CGRect rectToDraw = CGRectInset(rect, 10.0, 10.0);
NSLog(@"==%@", NSStringFromCGRect(rectToDraw));
 :“=={{20.0, 20.0}, {80.0, 80.0}}”

CGRect rect = CGRectMake(10.0, 10.0, 100.0, 100.0);
CGRect rectToDraw = CGRectInset(rect, -10.0, -10.0);
NSLog(@"==%@", NSStringFromCGRect(rectToDraw));
 :“=={{0.0, 0.0}, {120.0, 120.0}}”

2、CGRectOffset
CGRect CGRectOffset(
        CGRect rect,
         CGFloat dx,
         CGFloat dy
);

   
ソース矩形原点rect(左上隅の点)に対してx軸とy軸に沿ってオフセットし、rectに基づいてx軸とy軸に沿ってオフセットする
テスト:
CGRect rect = CGRectMake(10.0, 10.0, 100.0, 100.0);
CGRect rectToDraw = CGRectOffset(rect, 12.0, 12.0);
NSLog(@"==%@", NSStringFromCGRect(rectToDraw));
 :“=={{22.0, 22.0}, {100.0, 100.0}}”

3、frameとdounds
frameとboundsはUIViewの2つの属性(property)である.
- (CGRect)frame
{
    return CGRectMake(self.frame.origin.x,self.frame.origin.y,self.frame.size.width,self.frame.size.height);
}

- (CGRect)bounds
{
    return CGRectMake(0,0,self.frame.size.width,self.frame.size.height);
}

frameとは、親view座標システムにおけるviewの位置とサイズを指す.(参照点は父の座標系)
boundsとは、viewの自己座標システムにおける位置とサイズを指す.(参照点は自己座標系)