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

可可:框架和边界有什么区别?,第1张

概述UIView及其子类都具有属性框架边界。有什么不同? UIView的边界是 rectangle,表示为相对于其自己的坐标系(0,0)的位置(x,y)和大小(宽度,高度)。 UIView的帧是rectangle,表示为相对于它包含在其中的超级视图的位置(x,y)和大小(宽度,高度)。 因此,假设一个视图的大小为100×100(宽x高)位于其超级视图的25,25(x,y)。以下代码打印出此视图的边界 UIVIEw及其子类都具有属性框架和边界。有什么不同?解决方法 UIView的边界是 rectangle,表示为相对于其自己的坐标系(0,0)的位置(x,y)和大小(宽度,高度)。

UIView的帧是rectangle,表示为相对于它包含在其中的超级视图的位置(x,y)和大小(宽度,高度)。

因此,假设一个视图的大小为100×100(宽x高)位于其超级视图的25,25(x,y)。以下代码打印出此视图的边界和框架:

// 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: 0bounds.origin.y: 0bounds.size.wIDth: 100bounds.size.height: 100frame.origin.x: 25frame.origin.y: 25frame.size.wIDth: 100frame.size.height: 100

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

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

总结

以上是内存溢出为你收集整理的可可:框架和边界有什么区别?全部内容,希望文章能够帮你解决可可:框架和边界有什么区别?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1050666.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存