【问题标题】:Array of buttons Swift 3按钮数组 Swift 3
【发布时间】:2017-01-20 18:05:48
【问题描述】:

如果调用函数“Savedata”,我将新按钮添加到 [UIbutton] 中,并将新元素添加到数组 [[Double]] 中。我希望索引 [i] 上的每个按钮在索引 [i] 上的数组 [[Double]] 中显示数据。我该怎么做循环?

 @IBAction func Savedata(_ sender: Any) {

    subjectsznamky.insert(arrayx, at: 0) //subjectsznamky is the [[Double]] array

var button : UIButton
            button = UIButton(type: .system) as UIButton
            button.frame = CGRect(x:5, y: 20, width: 100.0, height: 30)
            button.setTitle(ourname, for: .normal)
            self.view.addSubview(button)
            buttons.append(button)

   for i in buttons.indices {
                buttons[i].frame.origin.y += 30
                buttons[i].addTarget // here I need to create the function, that every button on index [i] displays data in subjectsznamky on index[i]


}

谢谢。

【问题讨论】:

  • “显示数据”按钮是什么意思?
  • 我的意思是在VC的label中显示数据
  • 是否必须在元素 0 处插入数组?你可以追加吗?如果你可以追加,你可以使用按钮的tag 字段来存储匹配的数组索引。点击按钮时,查看sender 按钮的tag 并引用数组。
  • 我已经在这里回答了。 Array of checkboxes

标签: ios arrays button addtarget


【解决方案1】:

这可能不是管理视图或在应用程序中显示数据的理想方式。您应该考虑使用UITableView

话说回来……

也许您可以尝试这样的事情,在字典中而不是单独的数组中跟踪您的按钮和值。如果你想保持顺序,你仍然需要一个专门用于按钮的数组。

var hashes = [UIButton : [Double]]()
var buttons = [UIButton]()

@IBAction func saveData(_ sender: Any) {

    var button = UIButton(type: .system)
    button.frame = CGRect(x:5, y: 20, width: 100.0, height: 30)
    button.setTitle(ourname, for: .normal)
    self.view.addSubview(button)
    buttons.append(button)

    hashes[button] = arrayx

    for button in buttons {
        button.frame.origin.y += 30
        button.addTarget(self, action: #selector(MyClass.disaplayData(_:)), for: .touchUpInside)
    }
}

func displayData(_sender: UIButton) {
    if let doubleArray = hashes[sender] {
        print(doubleArray)
    }
}

【讨论】:

    猜你喜欢
    • 2017-12-03
    • 2015-08-15
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    • 2017-05-04
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    相关资源
    最近更新 更多