UIButton图像在IB中看起来很好但在应用程序上显示时会拉长

时间:2013-05-14 21:01:48

标签: iphone ios uiview uibutton uiimage

我正在开发一款企业应用程序,用于跟踪公司车辆的里程和维护。我添加了图形按钮来稍微晃动它。这些按钮看起来应该在IB中的XIB上看起来,在iPhone上所有其他UIViews看起来都是正确的,但在一个特定的UIView上,图形图像在垂直方向上不成比例地延伸。

下面的第一张图片显示了它应该如何显示,底部有三个图形按钮。第二张图片显示了它在手机上的显示方式。此屏幕上的“帮助”按钮显示正常,但不能指望它保持这种状态。

它也不一致。随时调用此视图可能会显示图像拉伸或根本不显示图像。它很少正常显示图像,如下面的“帮助”按钮。

开发手机是运行6.1.3的4S。视图设置为Retina 3.5屏幕。 XCode是最新的(不管它是什么)。

The way it's supposed to look

The way it looks on the phone

同样,只有在这一个观点上才会出现问题。在显示此UIView时,同一视图控制器上还有另一个UIView。另一个视图上的按钮图形看起来很好。所有其他视图和视图控制器在UIButton上使用相同的图形,没有任何问题。

3 个答案:

答案 0 :(得分:1)

在Interface Builder(Xcode)中,您使用4.5英寸的屏幕高度创建了视图。

但是你看到问题的设备是一个5英寸的屏幕。因此视图的大小适合。

当它这样做时,Interface Builder对这些子视图的自动布局约束接管来确定他们做什么。这些限制导致高度发生变化。

答案 1 :(得分:1)

无需关闭Autolayout。 Autolayout非常有用,但在重新定位后,似乎可以随意将约束“对齐基线:”分配给UIButtons。

只需在Storyboard中选择有问题的UIButton / UIImageView,找到约束“将基线对齐:”,点击齿轮图标并选择“提升为用户约束” ,再次点击并选择“删除”。这应该可以解决您的问题。

答案 2 :(得分:0)

在回答这里的评论时,我将回答我自己的问题:我为这个视图控制器关闭了Autolayout,并解决了所有问题。这是自XCode开始为iPhone 5开发以来我写的第一个应用程序,所以我不知道Autolayout功能。我需要了解它是如何工作的以及它为什么要这样做。

感谢您的帮助!