UIImageView / UIButton在第二个和连续的视图上自动调整为错误的帧值

时间:2013-04-07 07:10:03

标签: iphone ipad uiview interface-builder autoresize

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

First time, intended outcome.. perfect

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

但是,当我导航到选项卡栏中的其他选项卡,或使用导航控制器,然后再次返回到特定视图时,UIButton都出错了...在viewDidAppear内部,大小不再正确(高度变为double),第二个视图中的UIButton的Y是如此巨大,它离开了屏幕

second and consecutive show... awful

我一直在调试和调整一整天的属性,但无法理解出了什么问题。我注意到如果我没有检查UIViews(红色和绿色视图)的[Autoresize subviews]复选框,布局完好无损且问题就消失了。然而,这不是预期的行为,因为我希望UIButton(连同它的backgroundImage)在iPad和4“屏幕设备上被拉伸和动态增长..

附加是第一个子视图(红色视图)的设置,第二个视图(绿色视图)的设置相同,或者锁定到镜像边缘。提前谢谢!

root view settings

top view settings

top UIButton / UIImageView settings

1 个答案:

答案 0 :(得分:0)

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

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

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

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

此致 拉维