我设置了一个 UIScrollView,并使用 addSubView 添加 5 个按钮。这是我的 viewDidLoad 中的代码。
let codedButton:UIButton = UIButton(frame: CGRectMake(0, 0, 100, 50))
codedButton.backgroundColor = UIColor.redColor()
codedButton.setTitle("Button 1", forState: UIControlState.Normal)
codedButton.addTarget(self, action: #selector(ViewController.buttonAction(_:)), forControlEvents: UIControlEvents.TouchUpInside)
codedButton.tag = 1
self.buttonScrollView.addSubview(codedButton)
let codedButton2:UIButton = UIButton(frame: CGRectMake(110, 0, 100, 50))
codedButton2.backgroundColor = UIColor.redColor()
codedButton2.setTitle("Button 2", forState: UIControlState.Normal)
codedButton2.addTarget(self, action: #selector(ViewController.buttonAction(_:)), forControlEvents: UIControlEvents.TouchUpInside)
codedButton2.tag = 2
self.buttonScrollView.addSubview(codedButton2)
(一直到 5。)
我需要帮助解决的问题是...最终,这些按钮将动态显示。不只是固定数量 5。
如何调整 CGRectMake 的 X 值以自动将新按钮“ float ”到刚刚创建的按钮右侧?在上面的代码中,我明确说明了 X 的位置,但是一旦这些按钮在代码中动态创建,就无法正常工作。
编辑 为了澄清我上面的问题: 我附上了一张图片。请注意按钮如何始终水平堆叠/彼此相邻,无论是 2 3 4 还是 5 个。这些按钮将动态显示。因此,根据我上面提供的代码尝试,它将不起作用,因为它显式设置了 X 轴上按钮的放置位置。
最佳答案
我发现您正在以编程方式执行此操作。我无法帮助编写代码,但 Storyboard中的堆栈 View 非常棒。我的应用程序中有一个功能,其中有 4 个按钮,但用户可能只能看到 4 个按钮中的 2 个。
1) 将按钮水平添加到 Storyboard 中(它们不需要完全对齐,只要足以让 Xcode 识别出它是水平的而不是垂直的即可。
2) 选择全部 5 个按钮
3) 单击 Xcode 右下角的堆栈 View 按钮(该按钮有 4 条水平线和一个向下的箭头。
4)在属性检查器中,选择水平作为轴,对齐为中心,按比例填充,调整间距,然后选择比例填充作为模式。
5)在Swift文件中,您可以使用button.hidden = true/false添加或隐藏按钮
注意:请记住,当我上次检查时,堆栈 View 仅适用于 iOS 9
关于Swift - 自动在刚刚添加的按钮右侧添加一个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36295316/