Xcode 如何防止情节提要以UIView为中心调整(拉伸)UIImage的大小?

Xcode 如何防止情节提要以UIView为中心调整(拉伸)UIImage的大小?,xcode,uiimageview,storyboard,constraints,xcode8,Xcode,Uiimageview,Storyboard,Constraints,Xcode8,我有一个通用的iOS应用程序,正在尝试从旧式的启动图像转移到故事板启动屏幕上的简单中心图像,因此我有一个适用于所有设备的单一故事板。当应用程序在比图像大的设备上运行时,我的图像640x1136,iPhone 5s大小不需要拉伸-换句话说,UIView的背景色应该出现在较大设备上图像的周围。出于调试目的,我将视图背景颜色更改为俗艳的石灰色 根据Suragch的最高投票率答案,我在UIImageView上定义了2个约束条件,事实上,我还必须遵循接受答案的建议,添加额外的UIImageView,其中包

我有一个通用的iOS应用程序,正在尝试从旧式的启动图像转移到故事板启动屏幕上的简单中心图像,因此我有一个适用于所有设备的单一故事板。当应用程序在比图像大的设备上运行时,我的图像640x1136,iPhone 5s大小不需要拉伸-换句话说,UIView的背景色应该出现在较大设备上图像的周围。出于调试目的,我将视图背景颜色更改为俗艳的石灰色

根据Suragch的最高投票率答案,我在UIImageView上定义了2个约束条件,事实上,我还必须遵循接受答案的建议,添加额外的UIImageView,其中包含我的UIImageView

UIImageView的内容模式是中间模式,因此似乎不应该进行拉伸

在pic中,注意UIImageView的Xcode大小检查器设置。UIView有iPhone 7大小的DIM 750x1334,因此,由于iPhone比我的图像高,UIImageView的位置使其X为55,Y为99。宽度和高度与图像本身640x1136相同

当我在模拟器中运行iPhone7时,它看起来应该和Xcode的界面生成器显示的图像完全一样,但相反,对于任何比iPhone5s或SE更大的设备,它看起来就像我连接了一个iPadAir的图片,仅供参考。您可以看出图像必须垂直拉伸,因为图像只有1136高

我附上了iPhone7模拟器iPadAir和iPadPro的截图。请注意,iPad Air的左右边缘出现了水平的淡黄色条纹。请注意,在iPad Pro上,石灰背景色开始显示在图像上方。这就好像在较小的设备上,系统正在拉伸UIImageView,但随着设备屏幕尺寸的增加,这最终会停止,直到对于最大的Pro,您可以真正看到周围的背景。似乎对于所有比iPhone 5s或SE更高的设备,都不应该存在拉伸/变形。这就是我想要实现的

界面生成器大小设置 iPhone7模拟器屏幕截图 iPad Air设备屏幕截图 iPad Pro设备截图

尝试向ImageView添加宽度/高度约束:


首先选择ImageView,然后选择此|-☐-| 位于序列图像板窗口右下角的图标,位于可更改设备类型的选项旁边

尝试向ImageView添加宽度/高度约束:


首先选择ImageView,然后选择此|-☐-| 图标位于故事板窗口的右下角,在您可以更改设备类型的选项旁边

好的,我想我已经解决了问题。您的图像大小过大。你说你希望它的大小和iPhone5一样,而它的显示大小是1136x640像素。这与Xcode中的宽度/高度不同。要实现这一点,请将设备更改为iPhone 5或类似版本,并获取其大小。例如,iPhone8的视图大小为667x375。这样你的图像就不会被切断。

好的,我想我已经解决了问题。您的图像大小过大。你说你希望它的大小和iPhone5一样,而它的显示大小是1136x640像素。这与Xcode中的宽度/高度不同。要实现这一点,请将设备更改为iPhone 5或类似版本,并获取其大小。例如,iPhone8的视图大小为667x375。这样您的图像就不会被切断。

我最终能够做到这一点,完全消除了限制,并且只使用了在选择“大小检查器”时找到的自动调整大小设置。UIImageView现在保留其指定的大小,并且不会拉伸。

我最终能够实现这一点,方法是完全消除约束,仅使用在选择“大小检查器”时找到的自动调整大小设置。UIImageView现在保留其指定的大小,并且不会拉伸。

如果您希望视图/图像完全覆盖屏幕,则无灰绿色,您可以将视图的上/下/左/右约束设置为0。我希望图像保持未拉伸状态。只有当图像尺寸和设备匹配时,它才能完全覆盖屏幕。那么你想要黑色+蓝色的东西吗?图像保持一个大小,如果图像没有填满整个屏幕(例如在iPad Air上),可以添加一个额外的边框?我的意思是看两个图像之间的比例,它看起来没有拉伸,你能发布你想显示的内容吗?你想让图像在更大的屏幕上显示什么?好吧,我已经发布了我想显示的内容。看到我提供的两个图像之间的差异了吗?第一个Xcode接口生成器是正确的,只要设备启动,就会显示类似的内容

不是5s或SE-看不到石灰。我非常感谢您的帮助,但我需要/想要的是非常清楚的。如果您想要的是视图/图像完全覆盖屏幕,没有灰绿色,您可以将视图的上/下/左/右限制设置为0。我希望我的图像保持不拉伸。只有当图像尺寸和设备匹配时,它才能完全覆盖屏幕。那么你想要黑色+蓝色的东西吗?图像保持一个大小,如果图像没有填满整个屏幕(例如在iPad Air上),可以添加一个额外的边框?我的意思是看两个图像之间的比例,它看起来没有拉伸,你能发布你想显示的内容吗?你想让图像在更大的屏幕上显示什么?好吧,我已经发布了我想显示的内容。看到我提供的两个图像之间的差异了吗?第一个Xcode接口生成器是正确的,当设备不是5s或SE时,应该显示类似的内容-没有石灰在视图中。我非常感谢你的帮助,但是我需要/想要的是非常清楚的。如果这对社区来说是一个准确的答案,那么pic需要显示所有的设置。“添加约束”按钮已禁用,因此您所显示的内容甚至无法执行。我确实玩过设置,但没有任何效果。对不起,我以前从未使用过约束。你是对的,我添加了更好的图片和解释。当你点击复选框时,添加约束按钮将自动启用。我完全按照你显示的那样做,因为我无法提供图像,我只能说,在我的iPad Air上,图像没有居中,但其顶部固定在屏幕顶部,其左侧固定在屏幕左侧,并且仅在右侧显示一条灰绿色,底部被切断了。既然你在努力工作,让我们试试这个:我会把图像发给你,你只要在模拟器中找到答案就可以了。它的设置非常简单:一次启动的故事板和一个简单的640x1136 png文件放在其中。听起来你可能有一些额外的限制,我的ImageView上唯一的限制是中心X、中心Y、宽度和高度。在我的问题本身下,它说我们可以将其移动到聊天会话。怎么样?问题和答案中有太多的反复。如果这对社区来说是一个准确的答案,那么图片需要显示所有的设置。“添加约束”按钮已禁用,因此您所显示的内容甚至无法执行。我确实玩过设置,但没有任何效果。对不起,我以前从未使用过约束。你是对的,我添加了更好的图片和解释。当你点击复选框时,添加约束按钮将自动启用。我完全按照你显示的那样做,因为我无法提供图像,我只能说,在我的iPad Air上,图像没有居中,但其顶部固定在屏幕顶部,其左侧固定在屏幕左侧,并且仅在右侧显示一条灰绿色,底部被切断了。既然你在努力工作,让我们试试这个:我会把图像发给你,你只要在模拟器中找到答案就可以了。它的设置非常简单:一次启动的故事板和一个简单的640x1136 png文件放在其中。听起来你可能有一些额外的限制,我的ImageView上唯一的限制是中心X、中心Y、宽度和高度。在我的问题本身下,它说我们可以将其移动到聊天会话。怎么样?问题和答案中有太多的反复。不,图像不是太大。这正是苹果需要的尺寸。这些是视网膜屏幕——你可以在这里了解为什么使用更大的图像:你可以在这里的表格中验证苹果的尺寸要求:不,图像不是太大。这正是苹果需要的尺寸。这些是视网膜屏幕-你可以在这里阅读为什么使用较大的图像:你可以在这里的表格中验证苹果的尺寸要求: