我正在尝试在主视图的右下角中放置一个子视图(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 and left = 768.0 ,而iPad 是 in 横向模式!(宽度应大于高度!??)
此外,如果我关闭IB中的“autoresize subviews”,那么代码只有在我交换bottom
和left
时才会起作用(但它不能完美地运行,因为真正的宽度是1024而不是1004。)
我的问题是:当视图处于横向模式时,是否有一种优雅的方法来确定视图右下角的位置?
答案 0 :(得分:2)
如果您在viewWillLayoutSubviews中查看这些值,并使用bounds而不是frame,您将获得正确的值,并且如果您旋转设备,它们将会更新。