如何在 iOS 中创建在每部 iPhone 中正确显示的按钮列表
Posted
技术标签:
【中文标题】如何在 iOS 中创建在每部 iPhone 中正确显示的按钮列表【英文标题】:how to create a list of buttons in iOS which shows correctly in every iPhones 【发布时间】:2017-10-10 10:55:06 【问题描述】:我对 swift 完全陌生, 我想创建一个按钮列表,我需要连续三个按钮 它在大屏幕 iPhone 中运行良好,但在较小的 iPhone 中看起来像下图,(其中一个按钮的一半将被隐藏) 每个按钮的高度: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.
感谢任何帮助,。
【问题讨论】:
使用自动布局。将按钮放在水平堆栈视图中,然后将堆栈视图限制为父视图的宽度(可能是视图控制器的主视图)。 我同意所有其他 cmets 但这个问题与您的几乎相同,并且可能会为您提供解决方案***.com/questions/41310445/… 看看这个***.com/questions/32862142/…我希望它有帮助....如果您仍然感到困惑,我可以用更详细的方式解释它...让我知道 您最初需要在最小设备中设置框架,它在自动调整大小的概念中也完美适用于最大设备尺寸 @PulkitKumarSingh 非常感谢。这真的很有帮助,但正如你所说,我非常困惑,而且我是 xCode 的新手,它有点快,我不知道灰框到底是什么。如果可能的话,给我一些分步指南。我不知道该怎么感谢你。非常感谢 【参考方案1】:以下是使用堆栈视图和代码的步骤
您的代码应如下所示 -
@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
如有其他疑问,请在下方评论。
希望对你有帮助。
【讨论】:
现在有一个更简单的解决方案,很快就会更新。使用乘数约束,使用相等的宽度并设置图像纵横比。【参考方案2】:看看像here这样的自动布局和约束。
【讨论】:
非常感谢我正在阅读它,但由于我是全新的,有点困惑,但非常感谢你,我会告诉你结果【参考方案3】:您可以使用自动布局来处理它,只需为这些按钮本身添加比例约束,然后为每个按钮与其他按钮添加等宽约束,以及所有按钮的前导和尾随约束
【讨论】:
非常感谢,我是全新的,有点迷茫,需要一步一步了解。但感谢您的帮助。谢谢 我该如何使用自动布局?以上是关于如何在 iOS 中创建在每部 iPhone 中正确显示的按钮列表的主要内容,如果未能解决你的问题,请参考以下文章