2

我试图在主视图的右下角buttView放置一个子视图( )(来自代码,而不是来自 IB)。

以下代码有效

const float bottom = self.frame.size.height;
const float left   = self.frame.size.width;
NSLog(@"bottom=%.1f left=%.1f", bottom, left);
CGSize bz = buttView.frame.size;
CGRect rc = CGRectMake(left-bz.width, bottom-bz.height, bz.width,bz.height);
buttView.frame = rc;
[self addSubview:buttView];

但我很困惑,因为根据日志消息,bottom=1004.0 和 left=768.0 ,并且iPad处于横向模式!(宽度应该大于高度!??)

此外,如果我在 IB 中关闭“自动调整子视图”,那么代码只有在我交换bottomand时才能工作left(但它不能完美工作,因为真正的宽度是 1024 而不是 1004)。

我的问题是:当视图处于横向模式时,是否有一种优雅的方法来确定视图右下角的位置?

4

1 回答 1

2

如果您在 viewWillLayoutSubviews 中查看这些值,并且使用边界而不是框架,您将获得正确的值,并且如果您旋转设备,它们将被更新。

于 2013-04-22T19:10:12.257 回答