这是我的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。
答案 0 :(得分:1)
您可以使用UITableView
或UICollectionView
来显示按钮。使用委托方法,您可以自动将单元格数(每个单元格包含一个按钮)绑定到您通过步进器动态设置的值。
您可以对单元格进行子类化,使其看起来像您想要的那样。