UIStepperによってUILabelの数を変更
タイトルの通りなのですが、UIStepperを押す毎にLabelの数を変えたいと考えています。
そこで以下のようなプログラムを書いたのですが、UIStepperを減らす方向に押す場合、画面がリフレッシュされず、TextFieldの数が変わらないという問題です。以下で、_dataNumは表示するデータの数で、この行より前で定義しています。_orderはその番号を表すUILabel配列でこれについても、コレよりも前に定義しました。
なにかよい方法ありましたら、よろしくお願いします。
internal func stepperChanged(Sender: UIStepper) {
if _dataNum < Int(Sender.value){
_order.append(makeOrderLabel(dx, DataNum: _dataNum, i: _dataNum))
}
else if _dataNum > Int(Sender.value){
_order.removeAtIndex(_dataNum-1)
for var j = 0; j < _dataNum-1; j++ {
self.view.addSubview(_order[j])
}
}
_dataNum = Int(Sender.value)
}
func makeOrderLabel(dx: CGFloat, DataNum: Int, i: Int) -> UILabel {
var frame: CGRect
frame = CGRectMake(dx-170, 150+100*CGFloat(i), 80, 20)
let _UILabel: UILabel = UILabel(frame: frame)
_UILabel.text = "Data: \(i+1)"
_UILabel.font = UIFont.systemFontOfSize(20)
_UILabel.textAlignment = NSTextAlignment.Center
_UILabel.lineBreakMode = NSLineBreakMode.ByCharWrapping
_UILabel.numberOfLines = 0
_UILabel.sizeToFit()
self.view.addSubview(_UILabel)
return UILabel()
}