如何在Xcode中正确设置UIButton的约束(如图)?

时间:2019-04-19 05:51:45

标签: ios swift uibutton constraints scenekit

背景:

我正在为要在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)在另一台设备上的外观(I pad 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约束在大多数情况下都起作用。)

要考虑的其他事项:

•我试图调整图像的大小并将其放入堆栈视图   -我无法正常工作

感谢您的任何反馈!

1 个答案:

答案 0 :(得分:0)

As suggested in comment with the help of CollectionView also possible. But I have tried with UIButton with size 90x90 and placed in the center of the view.
        below are the constraint added to the button 
        Align Center X to : Superview
        Align Center Y to : Super view
        width equals : 90
        Height equals : 90

        and add the remaining button.
        Please find the below link for adding constraints to all button.

    Below are the screen shots.

    ipad https:    https://prntscr.com/ne175m
    iphone 5s .    https://prntscr.com/ne174t
    iphone 7 plus  https://prntscr.com/ne175x
    constraints    https://prntscr.com/ne10vl



    Please change UIButton background images as per your requirement