我在视图上动态创建一些按钮,然后根据我的一些JSON respone参数决定它们的帧。但我想在设备(dsimulator)旋转时自动调整它们。我可以轻松地在界面构建器上执行此操作,但无法对动态创建任何操作。有人可以帮忙吗? 的修改
这是我的代码剪辑
if (button.tag==1) {
button.frame = CGRectMake(30.0f, yPosition, 200.0f, buttonHeight);
}
if (button.tag==2) {
button.frame = CGRectMake(280.0f, yPosition, 200.0f, buttonHeight);
}
if (button.tag==3) {
button.frame = CGRectMake(530.0f, yPosition, 200.0f, buttonHeight);
}
使用Portraid模式时没有问题,但是当它旋转到横向时,一个大的空白区域会停留在屏幕的右侧。我怎么能解决这个问题?(我的意思是,当我旋转时,我希望按钮到达scren宽度的中心)
修改 我使用我的xib文件在Size Inspector(Xcode 4.3)上进行了自动调整,并且效果很好,但无论我做什么,我都无法在旋转后调整动态创建的按钮。我几乎尝试了所有AutoresizingMask enums of UIView,但没有任何变化。有人可以帮忙吗
答案 0 :(得分:2)
您可以按代码定义旋转设备时的预期行为。
和
您需要在添加按钮时设置按钮行为,如:
[button setAutoresizingMask:UIViewAutoresizingFlexibleBottomMargin];
答案 1 :(得分:1)
您在界面构建器文件中设置的属性是UIViewAutoresizing
属性。
看看this documentation from Apple on the UIView class(您的按钮是其子类);查找UIViewAutoresizing
属性。那就是你想要的那个。
更新:以下是使用此功能的MKMapView代码片段:
mainMapView = [[MKMapView alloc] initWithFrame:CGRectMake(20, 239, 280, 122)];
[mainMapView setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin];
使用UIViewAutoresizingFlexibleTopMargin
时,地图视图会在用户接听电话时向下移动---它会修复地图相对于屏幕顶部的位置。
在文档中进行挖掘,您将找到最适合您情况的自动调整遮罩。