0

我有一个包含 UITabBar 和 UINavigationBar 的应用程序,如下所示:

第一次,预期的结果..完美

在视图内部,我有 2 个子视图,它们分别占据上半部分(红色)和下半部分(绿色),在这两个视图中,我有一个 UIImageView(或我分配背景图像的 UIButton,我已经测试了这两个对象) . 我使用界面生成器分配位置和自动调整大小值,当我第一次呈现视图控制器时,一切看起来都完全正确,从而显示了包含两个子视图的视图。

但是,当我导航到选项卡栏中的其他选项卡或使用导航控制器并再次返回特定视图时,UIButton 都出错了。在 viewDidAppear 内,大小不再正确(高度变为两倍),并且第二个视图上的 UIButton 的 Y 太大了以至于超出了屏幕

第二次和连续演出......糟糕透了

我整天都在调试和调整属性,但不明白出了什么问题。我注意到,如果我不选中 UIViews(红色和绿色视图)的 [Autoresize subviews] 复选框,则布局完好无损,问题就消失了。但是,这不是预期的行为,因为我希望 UIButton(连同它的 backgroundImage)在 iPad 和 4 英寸屏幕设备上被拉伸和动态增长。

附上我对第一个子视图(红色视图)的设置,第二个视图(绿色视图)的设置要么相同,要么锁定到镜像边缘。提前致谢!

根视图设置

顶视图设置

顶部 UIButton / UIImageView 设置

4

1 回答 1

0

将您的图像设置为按钮前景而不是按钮背景。作为按钮背景的图像会拉伸,但作为按钮前景的图像不会。

或使用以下代码将您的图像设置为不具有弹性

//For image as background    
[button setBackgroundImage:image forState:UIControlStateNormal];

//For image as foreground
[button setImage:image forState:UIControlStateNormal]; 

问候,拉维

于 2013-04-07T07:30:43.480 回答