如何在iOS中创建按钮列表,在每个iPhone中正确显示

问题描述:

即时消息全新, 我想创建一个按钮列表,我需要连续三个按钮 它可以在大屏幕iPhone中正常工作,但在较小的它看起来像下面的图片,(其中一个按钮的一半将被隐藏) 每个按钮都有高度:100和宽度100如何在iOS中创建按钮列表,在每个iPhone中正确显示

how buttons look like in small devices

我试图使用自动调整大小,但没有差异发生。我也改变了我的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. 
    } 
} 

感谢任何帮助。

+0

使用AutoLayout。把你的按钮放在一个水平堆栈视图中,然后将你的堆栈视图限制为父视图的宽度(可能是视图控制器的主视图)。 – McNight

+1

我同意所有其他评论,但这个问题几乎与你的相同,并可能为你提供解决方案https://stackoverflow.com/questions/41310445/how-to-divide-uiview-in-to-three-even -sized-subviews-horizo​​ntal-in-xcode – Simon

+1

检查这一个出https://stackoverflow.com/questions/32862142/how-to-add-equal-spacing-and-equal-width-for-button-in-ios - 自动布局我希望它可以帮助....如果你仍然困惑,我可以用更复杂的方式来解释它...让我知道 –

下面尾随约束的步骤使用堆栈视图和代码enter image description here

enter image description here

enter image description here

enter image description here

enter image description 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 

} 

如果有任何其他疑问,请评论如下。

希望它有帮助。

+0

谢谢你一千次。非常感谢 –

看看自动布局和约束如here

+0

非常感谢你我正在阅读,但因为我是全新的,有点困惑,但非常感谢你我会让你知道结果 –

您可以使用自动布局来处理它,只需添加比例约束那些按钮本身,就等于宽度约束添加到与其他每个按钮,也是领导和所有按钮

+0

非常感谢你,我是全新的有点困惑,我需要逐步了解它。但感谢你的帮助。谢谢 –

+0

我可以如何使用自动布局? –