如何在 iOS 中创建一个在每台 iPhone 中都能正确显示的按钮列表

how to create a list of buttons in iOS which shows correctly in every iPhones

我是 swift 的新手, 我想创建一个按钮列表,我需要连续三个按钮 它在大屏幕 iPhone 上工作正常,但在较小的 iPhone 上看起来像下图,(其中一个按钮的一半会被隐藏) 每个按钮都有 height:100 和宽度 100

我尝试使用自动调整大小,但没有任何区别。我也像这样改变了我的 viewDidLoad 但结果仍然和以前一样。

class ViewController: UIViewController {



@IBOutlet weak var button: UIButton!
@IBOutlet weak var btn1: UIButton!
@IBOutlet weak var btn2: UIButton!


override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    button.imageView?.contentMode = .scaleAspectFit
    btn1.imageView?.contentMode = .scaleAspectFit
    btn2.imageView?.contentMode = .scaleAspectFit
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
  }
 }

感谢任何帮助。

看看像 here 这样的自动布局和约束。

您可以使用自动布局来处理它,只需为这些按钮本身添加比例约束,然后为每个按钮添加与其他按钮宽度相等的约束,以及所有按钮的前导和尾随约束

以下是使用堆栈视图和代码的步骤

您的代码应如下所示 -

@IBOutlet weak var stackViewNew: UIStackView!

override func viewDidLoad() {
super.viewDidLoad()

stackViewNew.distribution = .equalSpacing

var value : CGFloat!

value = (((self.view.frame.size.width) - 300.0)/2)-10  // Adjust Spacing according to screen size
if(value == 0)
{
    value = 5             //If spacing comes to be zero then minimum spacing set
}
stackViewNew.spacing = value

}

如有其他疑问,请在下方评论。

希望对您有所帮助。