我发现真的很奇怪,或者是一个糟糕的设计决定,UIPickerViewDelegate
包含需要了解其数据(标题)的方法。因为这将是其DataSource
的全部目的。像这些:UIPickerView DataSource x委托设计
pickerView(_:titleForRow:forComponent:)
pickerView(_:attributedTitleForRow:forComponent:)
pickerView(_:viewForRow:forComponent:reusingView:)
我想要实现与不同对象PickerView
为DataSource
和Delegate
。当然,创建一个新的代表很容易,可以称之为PickerViewListenerDelegate
。但是,当苹果做出这个设计决定时,我认为首先值得讨论。
这个奇怪的设计决定的重点是什么?我在这里错过了什么吗?
就像Table Views一样,我经常使用与DataSource和Delegate相同的Controller对象。然而,正如我所看到的那样,它们有两个不同的属性是有原因的,这一次它对于我的设计使用两个不同的对象是有意义的,但是'UIPickerViewDataSource'和'UIPickerViewDelegate'的奇怪设计阻止了我这样做。 (我不得不以奇怪的方式将它们连接起来,这样'委托人'就知道标题。 –