【问题标题】:How to reload a picker view?如何重新加载选择器视图?
【发布时间】:2015-04-04 04:00:32
【问题描述】:
@IBAction func nextTurn(sender: AnyObject) {
    if numberOfTurn < (playersForPicker.count-1) {
    numberOfTurn++
    }else{
        numberOfTurn = 0
    }
    titleForTwo.title = playersForPicker[numberOfTurn]
    var lostPlayer = playersForPicker[numberOfTurn]

    titleForTwo.title = playersForPicker[numberOfTurn]

    playersForPicker.removeAtIndex(numberOfTurn)

    playerPicker.reloadAllComponents()

         playersForPicker.insert(lostPlayer, atIndex: numberOfTurn)
    startButton.setTitle("Next Turn", forState: UIControlState())
}

playerPicker 不会重新加载或更改,因此我需要有关如何在单击按钮时刷新或重新加载选择器视图的帮助。

【问题讨论】:

  • 首先,你确定那个函数被调用了吗?您的startButton 是否按应有的方式更改文本?
  • 是的,它正在改变
  • 为了确保您的pickerView 不会更新其组件,只需在委托/数据源方法处放置一个断点。

标签: ios xcode swift xcode6 uipickerview


【解决方案1】:

为什么要改变?您正在删除 playerForPicker[numberOfTurn],但您将 lostPlayer 设置为相同的值,然后将其添加回数组中的相同位置。数组没有改变,所以你的选择器也不会改变。您正在正确地重新加载您的选择器视图。如果您注释掉插入 lostPlayer 的行,您应该会看到该项目从选取器中消失。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    相关资源
    最近更新 更多