它们都是CGRects
,当我交换其中一个时,我的程序的行为是相同的。
它们都是CGRects
,当我交换其中一个时,我的程序的行为是相同的。
请参考UIView文档。
frame属性指定了视图在父视图坐标系中的原点和大小。所有视图的坐标系原点都是左上角。
bounds属性指定了视图在自身坐标系中的原点和大小(视图的内容可能会大于bounds的大小)。
框架和边界类似,但框架是相对于另一个对象(父视图)的参考而边界则是相对于自身的。
我要从其他答案中特别指出一件事情,那就是你的程序有时候会表现得相同。例如,在旋转方向之前。来自 tristan 的答案
运行此代码:
- (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
所以,是的,你的程序通常会表现相同,但并非在所有情况下都如此。
请查看这个链接。希望这能帮助你。