首页 > 解决方案 > 如何在 Xcode 中正确设置 UIButtons(图像)的约束?

问题描述

背景:

我正在为我在 Xcode 中构建的游戏创建商店,使用 SceneKit 用于游戏,SpriteKit 用于叠加,UIKit 用于商店以及我可能创建的任何其他非叠加视图。我有 9 个按钮,所有按钮的默认尺寸都是 700x700,在情节提要中按比例缩小到 90x90。我试图让它们中的所有 9 个都以 3x3 格式显示,该格式会根据用户拥有的屏幕调整大小和空间。

注意: contentView 是一个带有浅蓝色背景的 UIView,其中包含我所有的按钮。

(图 1)我希望它在所有屏幕上的样子(减去蓝色轮廓): https ://prnt.sc/ndzqbz

(图 2)在我设计的设备(Iphone 7 Plus)上的样子:http: //prntscr.com/ndzrkn

(图 3)它在不同设备上的样子(我垫 Pro 12.9inch 3rd gen): http ://prntscr.com/ndzrrh

问题:

我将如何使图像 2 和 3 更接近图像 1?

我已经浏览了大量的自动布局约束视频,并且在整个网络上都没有找到任何东西。每次我尝试某些东西时,它都会使图像 3更加混乱。 注意:图 3是我之前拥有的“清洁”版本,它曾经在不应该出现的任何地方都有各种不同形状和大小的按钮。

我还尝试了在 Swift 5.0 中解决此问题的编程方法:

代码:

func setupButtons() {
       player_button.frame = CGRect(x: contentView.self.frame.midX, y: contentView.self.frame.midY, width: 200, height: 200)
    }

我认为它会做的是将我的按钮放在视图的中间并增加按钮的大小。它确实增加了我的按钮的大小,但是在 Ipad 屏幕上,它把它定位在了这里:http ://prntscr.com/ndzxgo ,它不在我想要的 contentView 的中间。它似乎所做的是采用 contentViews 的原始大小并使用它。我似乎也无法让它在应用约束的情况下获取 contentView 的大小(我确实碰巧让我的 contentViews 约束在大多数情况下工作。)。

其他需要考虑的事项:

• 我尝试调整图像大小并将它们放入堆栈视图 - 我无法让它工作

感谢您的任何反馈!

标签: iosswiftuibuttonconstraintsscenekit

解决方案


推荐阅读