如何在 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
}
如有其他疑问,请在下方评论。
希望对您有所帮助。
我是 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
}
如有其他疑问,请在下方评论。
希望对您有所帮助。