UIImageView的框架和边界之间有什么区别?

时间:2010-07-13 10:31:10

标签: iphone uiimageview

它们都是CGRects,当我为另一个切换时,我的程序行为相同。

3 个答案:

答案 0 :(得分:4)

有关文档,请参阅UIView

  

frame属性指定   superview中视图的来源和大小   坐标。的起源   所有视图的坐标系都在   左上角。

     

bounds属性指定   来自视图的坐标和   它的大小(视图的内容可能是   大于边界大小)。

答案 1 :(得分:1)

框架和边界类似,但框架引用另一个对象(超级视图),而边界引用自身。

This question gives lots of great info. You should definitely read it.

我将从另一个答案中特别指出的一件事是你的程序有时会表现得相同。例如,在旋转方向之前。来自特里斯坦的回答

运行此代码:

- (void)viewDidLoad {
    [super viewDidLoad];
    UIWindow *w = [[UIApplication sharedApplication] keyWindow];
    UIView *v = [w.subviews objectAtIndex:0];

    NSLog(@"%@", NSStringFromCGRect(v.frame));
    NSLog(@"%@", NSStringFromCGRect(v.bounds));
}

此代码的输出为:

案例设备方向是纵向

{{0, 0}, {768, 1024}} <- frame
{{0, 0}, {768, 1024}} <- bounds

案例设备方向是横向

{{0, 0}, {768, 1024}} <- frame
{{0, 0}, {1024, 768}} <- bounds

所以是的,你的程序通常会表现相同,但并非在所有情况下。

答案 2 :(得分:1)

请通过此链接。希望这对您有帮助。

  1. http://www.slideshare.net/profmido/05-views