What's the Difference between the frame and the bounds?

The bounds of an UIView is the rectangle, expressed as a location (x,y) and size (width,height) relative to its own coordinate system (0,0).

The frame of an UIView is the rectangle, expressed as a location (x,y) and size (width,height) relative to the superview it is contained within.

So, imagine a view that has a size of 100x100 (width x height) positioned at 25,25 (x,y) of its superview. The following code prints out this view's bounds and frame:

// This method is in the view controller of the superview

- (void)viewDidLoad {

    [super viewDidLoad];



    NSLog(@"bounds.origin.x: %f", label.bounds.origin.x);

    NSLog(@"bounds.origin.y: %f", label.bounds.origin.y);

    NSLog(@"bounds.size.width: %f", label.bounds.size.width);

    NSLog(@"bounds.size.height: %f", label.bounds.size.height);



    NSLog(@"frame.origin.x: %f", label.frame.origin.x);

    NSLog(@"frame.origin.y: %f", label.frame.origin.y);

    NSLog(@"frame.size.width: %f", label.frame.size.width);

    NSLog(@"frame.size.height: %f", label.frame.size.height);

}

And the output of this code is:

bounds.origin.x: 0

bounds.origin.y: 0

bounds.size.width: 100

bounds.size.height: 100



frame.origin.x: 25

frame.origin.y: 25

frame.size.width: 100

frame.size.height: 100

 

你可能感兴趣的:(frame)