gpt4 book ai didi

swift - UIPickerView pickerView(_ :titleForRow:forComponent:) method

转载 作者:行者123 更新时间:2023-11-30 12:05:12 25 4
gpt4 key购买 nike

我使用 UIPickerView 及其方法 pickerView(_:titleForRow:forComponent:) 来填充行。一切正常,我可以通过用户界面看到行。我想知道方法被调用了多少次 - 例如,我有一个组件和 3 行,如果我通过 print 命令跟踪方法调用,我会发现 8 次调用(运行)。

我想对每一行执行特定操作,但只执行一次。有什么提示我做错了什么以及我应该如何做得更好吗?谢谢。

最佳答案

pickerView(_:titleForRow:forComponent:) 当选取器 View 需要标题用于给定组件中的给定行时,由选取器 View 调用。因此,每当需要标题时,就会调用委托(delegate)函数。您可能已经注意到,这些方法可以被多次调用,这是正常的。

在你的:

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {

您有,您可以创建一个字典来检查您之前是否设置过值。像这样的事情:

var dictionary = [Int: Bool]()
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if let value = dictionary[row] {
if !value {
// set value, the value of row has not been set before
...
// set that rows value to true so that you know it has been set
dictionary[row] = true
}
}
return "some string"
}

关于swift - UIPickerView pickerView(_ :titleForRow:forComponent:) method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46753061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com