Thanks
Thanks

Reputation: 40349

Do I have the right understanding of frames and bounds in UIKit?

Let me try to explain it. Please tell me if I am wrong. I am just 70% sure about it.

Like I understand it, an UIView has a frame and an bounds rectangle. The job of the frame rectangle is to set the position of the UIView relative to it's superview. More precisely: Relative to the coordinate system of the superview. The job of the bounds rectangle is to set the drawing area of the UIView, relative to it's own coordinate system.

Briefly:

Are there any mistakes or important things I missed?

Upvotes: 33

Views: 13796

Answers (5)

calebt
calebt

Reputation: 850

Check out Apple's guide on View Geometry. They have pretty good examples on what happens when you change bounds and frame values.

Upvotes: 39

Rod Gammon
Rod Gammon

Reputation: 41

http://developer.apple.com/library/ios/#documentation/windowsviews/conceptual/viewpg_iphoneos/WindowsandViews/WindowsandViews.html

For iOS. Origin coordinate is in different location from Mac OS (upper left, not lower left)

Upvotes: 1

Wayne Lo
Wayne Lo

Reputation: 3719

A view's Frame: the position and size of a rectangle inside the superview where the view will fill.

A view's Bound: the position and size of a rectangle inside the view itself.

Upvotes: 9

Rog
Rog

Reputation: 17170

You are right.

You can use the two interchangably though it's just the frame is easier when using a view and bounds is easier when working inside a view (e.g. in the event handling or drawing code)

Note also that frame is undefined if there is a transform operating on the view.

Upvotes: 4

Massimo Cafaro
Massimo Cafaro

Reputation: 25429

Yes you are right.

When you need to use the view, then you use the frame; the bounds are used to actually implement the view. As an example, you need to use the bounds to draw a view or to handle touch events. Instead, you use the frame when creating a view or positioning a view in its superview etc.

Upvotes: 4

Related Questions