我有2个组件,依赖pickerView
。我有一个预览UIImageView
,每次用户使用pickerView
时都会更改(并触发didSelectRow:inComponent:
)。这正如我预期的那样工作。
但是,我希望pickerView
在应用启动时触发didSelectRow:
,以便在用户看到UIImageView
时有预览。在viewDidLoad
中,当我尝试这个时:
[self pickerView:picker didSelectRow:row inComponent:component]; // row and component have 0 values.
接下来发生的事情 - pickerView
显示空白!删除此行,它再次完美地工作。我也尝试过这个:
[picker selectRow: row inComponent:component animated:NO];
认为它会触发didSelectRow:
但是它不会触发它而我的UIImageView
仍为空白。
关于如何在没有用户帮助的情况下调用didSelectRow:
方法的任何建议?
更新:顺便说一下,选择器位于另一个UIView
内(不是主要的)。万一重要。
答案 0 :(得分:12)
didSelectRow:...
。如果您使用selectRow:...
以编程方式选择行,则必须添加自己的逻辑以更新其他组件,如图像视图。
该原则对许多其他代表职能有效,例如tableView:didSelectRowAtIndexPath:
。
答案 1 :(得分:3)
根据您的评论,这就是您正在寻找的内容。 Does UIPickerView's selectRow:inComponent:animated: call pickerView:didSelectRow:inComponent:?
您必须手动调用didSelectRow
方法。