它们都是CGRects
,当我为另一个切换时,我的程序行为相同。
答案 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)
请通过此链接。希望这对您有帮助。