我發現真的很奇怪,或者是一個糟糕的設計決定,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'的奇怪設計阻止了我這樣做。 (我不得不以奇怪的方式將它們連接起來,這樣'委託人'就知道標題。 –