UIStepper以编程方式创建多个按钮

时间:2015-05-25 18:05:08

标签: swift

这是我的viewDidLoad:

的一部分
    override func viewDidLoad() {
    super.viewDidLoad()

    // stepper settings
    dayStepper.autorepeat = true
    dayStepper.maximumValue = 28
    dayStepper.minimumValue = 14
    dayStepper.value = 26
    dayStepperLabel.text = "\(Int(dayStepper.value)) days"

    for index in 1...totalDays {

        let button = UIButton()
        button.tag = index
        button.setTitle("\(index)", forState: .Normal)
        button.addTarget(self, action: "Action:", forControlEvents: .TouchUpInside)
        .....

我创建了一个UIStepper来设置totalDays ...最小值14,最大值为28.因此,如果用户选择26天......将以编程方式创建26个按钮(和26个文本字段)。

使用'固定'的totalDays数量一切正常。 UIStepper也起作用......(标签正在改变)。我的问题...如果用户选择26(使用步进器)我希望屏幕重建自己有26个按钮和26个文本字段...如果用户选择16,我希望屏幕自动重建,只显示16个按钮和文本字段(不丢失文本字段中的信息)。

最好的方法是什么?我想我可以用隐藏属性做到这一点......但是仍然按钮和文本字段就在那里。所以一定有更好的方法......谢谢,Jan。

1 个答案:

答案 0 :(得分:1)

您可以使用UITableViewUICollectionView来显示按钮。使用委托方法,您可以自动将单元格数(每个单元格包含一个按钮)绑定到您通过步进器动态设置的值。

您可以对单元格进行子类化,使其看起来像您想要的那样。