0

我目前正在 Swift 中设置三页表单,其中包含动态创建的标签、UITextFields 和 UISteppers。但是,我想知道如何动态增加 UITextField,因为每个示例都使用情节提要,并且我正在以编程方式进行操作。在此先感谢您的帮助!

           // read triggers configs
        let triggers = dict["Triggers"] as Array<String>

        //add list of triggers to view
        var triggersView = UIView(frame: frame)
        var prevInput = 150;
        for index in 0..<triggers.count{
            //title for triggers page
            var title = UILabel(frame: CGRectMake(0, 0, 300, 50))
            title.center = CGPointMake(200, 60)
            title.font = UIFont(name: title.font.fontName, size: 28)
            title.text = "Triggers"
            triggersView.addSubview(title)

            //label for trigger
            var label = UILabel(frame: CGRectMake(0, 0, 200, 21))
            label.center = CGPointMake(160, CGFloat(prevInput))

            label.textAlignment = NSTextAlignment.Left
            label.text = triggers[index]
            triggersView.addSubview(label)

            //input box for trigger
            var input = UITextField(frame: CGRectMake(0, 0, 50, 21))
            input.center = CGPointMake(300, CGFloat(prevInput))
            input.text = "0";
            triggersView.addSubview(input);

            //UIStepper
            var stepper = UIStepper(frame: CGRectMake(0, 0, 50, 21))
            stepper.center = CGPointMake(350, CGFloat(prevInput))
            stepper.
            triggersView.addSubview(stepper);

            prevInput += 75 //increment for height

        }
        self.scrollView.addSubview(triggersView)

编辑:它类似于我们向按钮添加操作的方式吗?如何以编程方式创建按钮?

4

1 回答 1

1

由于 UIStepper 是 UIControl 的子类,您可以使用它addTarget(_:action:forControlEvents:)来设置要发生的操作。控制事件应该是UIControlEvents.ValueChanged正确触发动作。

https://developer.apple.com/LIBRARY/IOS/documentation/UIKit/Reference/UIControl_Class/index.html#//apple_ref/occ/instm/UIControl/addTarget:action:forControlEvents

除此之外,您还需要一些方法将 UIStepper 与相关的 UITextField 关联起来。因此,您需要将 UITextFields 和 UISteppers 作为元组存储在某种数组中,或者您可以将 UIStepper 子类化并向与该特定步进器关联的 UITextField 添加一个属性。

于 2014-12-03T21:39:50.977 回答