gpt4 book ai didi

cocoa :框架和边界有什么区别?

转载 作者:行者123 更新时间:2023-12-03 16:00:10 25 4
gpt4 key购买 nike

UIView 及其子类都具有属性 framebounds。有什么区别?

最佳答案

UIView界限rectangle ,表示为相对于其自身坐标系 (0,0) 的位置 (x,y) 和大小 (宽度,高度)。

UIView框架rectangle ,表示为相对于其所包含的 super View 的位置(x,y)和大小(宽度,高度)。

因此,想象一个尺寸为 100x100(宽 x 高)的 View ,位于其父 View 的 25,25 (x,y) 处。以下代码打印出该 View 的边界和框架:

// 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);
}

这段代码的输出是:

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

因此,我们可以看到,在这两种情况下,无论我们查看的是边界还是框架, View 的宽度和高度都是相同的。不同之处在于 View 的 x,y 定位。对于边界,x 和 y 坐标位于 0,0,因为这些坐标相对于 View 本身。但是,框架 x 和 y 坐标是相对于父 View 中 View 的位置(之前我们说的是 25,25)。

还有一个great presentation涵盖 UIView。请参阅幻灯片 1-20,它们不仅解释了框架和边界之间的差异,还显示了视觉示例。

关于 cocoa :框架和边界有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1210047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com