私はUIPickerView
主に学習目的でカスタム置換クラスを構築しようとしていますが、開発中のアプリケーション内にこれを実装することを目的としています。私は自分のアプリケーションのUIに多くの時間と労力を費やしてきましたが、今ではデフォルトUIPickerView
が適切に適合していません。
私はこのドリブルUIPickerView
が本当に滑らかに見える日付/時刻ピッカーのモックアップを見ましたが、大きなハッキングなしでこれを大幅にカスタマイズできる地獄のチャンスはないことに気づきました。
たくさんの読書と調査の結果、私が最初に想定したようなプレーンではなく、コンポーネントにsをUIPickerView
使用していることがわかりました。これは2つの理由で混乱します:UITableView
UIScrollView
sのカスタマイズUITableViewCell
は、derriereの大きな問題です。それは大変な作業ではなく、面倒で、必要な結果が得られることはめったにありません。オーバーヘッドはほとんどありませんが、どういうわけかUIPickerView
これをうまくやってのけることができます。コンポーネントの各行は、そのUITableViewCellStyleDefault
ためのカスタムビューで使用するだけcontentView
だと思いますが、仮定について彼らが何を言っているかはご存知でしょう。
私を失望させている2番目のことは、プロトコルにUIPickerView
準拠しているが、UITableViewDataSource
プロトコルには準拠していないことUITableViewDelegate
です。デリゲートが正しい高さを提供する責任があるため、これは少し奇妙に思え– tableView:heightForRowAtIndexPath:
UIPickerView
ますが、コンポーネントのサイズを設定することはできます– pickerView:rowHeightForComponent:
これに沿って、テーブルビューを利用することも奇妙な選択のように思われます。これらは、スクロールビューのように、指定された行にネイティブに「スナップ」しないためpagingEnabled
です。
UIPickerView
デフォルトが前述のデリゲートに準拠していない理由を誰かが説明できますか?UIScrollView
代わりにカスタムピッカーを実装する方が簡単ですか、それともUITableView
必要な機能を提供する必要がありますか?