1
A
答えて
5
私は実際にそれが円形作るためにその可能性はないと思うが、あなたは偽物それことができます。
#define kRowsInPicker 10000
- (void)viewDidLoad {
NSArray *localPickerData = [[NSArray alloc] initWithObjects:
@"Ottawa", @"Toronto", @"Montreal", @"Winnipeg",
@"Saskatchewan", @"Iqaluit", @"Edomonton", nil];
[self setPickerData:localPickerData];
[localPickerData release];
UIPickerView *localPicker = [[UIPickerView alloc] initWithFrame:
CGRectMake(0, 0, 320, 216)];
[localPicker setDelegate:self];
[localPicker setDataSource:self];
localPicker.showsSelectionIndicator = YES;
NSInteger selectedRow = 0;
[localPicker selectRow:(((NSInteger)((kRowsInPicker/2)/[pickerData count])) * [pickerData count]) + (selectedRow%[pickerData count]) inComponent:0 animated:NO];
[self setPicker:localPicker];
[localPicker release];
[[self view] addSubview:picker];
[super viewDidLoad];
}
#pragma mark -
#pragma mark UIPickerViewDataSource methods
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView
numberOfRowsInComponent:(NSInteger)component {
// usually "return [pickerData count];"
return kRowsInPicker; // 10,000 is good, if you add a few more zeros
// there seems to be problems.
}
#pragma mark -
#pragma mark UIPickerViewDelegate methods
- (NSString *)pickerView:(UIPickerView *)pickerView
titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return [pickerData objectAtIndex:row%[pickerData count]];
}
pickerDataの文字列の数を変更することはできますが、それでも問題はありません。選択された行は、中央に最も近い「最初の」値を選択します。行%[pickerData count]は、pickerDataに3つのNSStringがあると仮定して、次のように返します。
ROW RETURNS 0 0 1 1 2 2 3 0 4 1 5 2 6 0 7 1 8 2 etc...配列の長さの0だけ循環します。 viewDidLoadの混乱しているものは、 selectedItemで指定した配列の項目のインデックスを使用して、できるだけ真ん中に近い値を選択するだけです。パフォーマンスヒットやメモリリークはなく、割り当てられたのは単一の配列だけです。選択した選択肢にアクセスするたびに、([localPicker selectedRowInComponent:0]%[pickerData count])を使用します。あなたが理解できないことや忘れたことがある場合は、コメントしてください。 これが助けてくれることを願っています!
0
私はUIScrollView
に基づいて周期的なテーブルビューを作成しました。そして、このtableViewに基づいて、UIPickerView
を再実装します。これに興味があるかもしれませんDLPickerView
このピッカービューにはUIPickerView
のすべての機能が含まれていますが、多くの新機能も提供されています。カスタムのピッカービューははるかに簡単です。
https://github.com/danleechina/DLPickerView
そしてこのDLPickerView
周期的にスクロールが実際に周期的にスクロールされていることに注意してください。すべての魔法は別のクラスDLTableView
のために起こった。
関連する問題
- 1. GridViewカスタムページング - 最初、最後、次、前、数値
- 2. 最初のフィールドの値が
- 3. 表示最初の値
- 4. Pythonコードの最大値と最小値が正しくない
- 5. JNI jintArrayの最初の値が正しくありません
- 6. 最も近い値と最後の値の問題
- 7. RxSwiftドライバは最初の値の後に処分されます
- 8. D3折れ線グラフ最初と最後のポイント値を表示します
- 9. インデックス値が最大の最大値と最大値の2番目の最大値を検索したい
- 10. 列の最初の異なる値
- 11. Entity Frameworkコードビットデータ型の最初のデフォルト値
- 12. 最初のログイン後にモーダルボックスを開く
- 13. メタビューポートタグの「初期スケール」の最小値はいくらですか?
- 14. Jmeterカウンタの最大値再初期化
- 15. groupBy in data.table:最初の値を使用
- 16. jdbc接続を作成し、最初の4列の最初の値を取得します。
- 17. 最大値と最小値?
- 18. ダーツリスト最小値/最大値
- 19. 配列の最初の5つの最大値を取得
- 20. (最初と最後)配列
- 21. 現在の観測値と最初の観測値の比較
- 22. 配列の最大値と最小値
- 23. 最小値と最大値の確認
- 24. 配列の最小値と最大値
- 25. SQLクエリの最大値と最小値
- 26. 最後の一致の戻り値
- 27. マップの最後の値を取得
- 28. リストの最初の値を別のリストの最初の値に追加します。 python
- 29. マップの最初のN値<K, V>値でソート
- 30. ドロップダウンの選択値は常に最初の値です - Jquery
あなたはそれを円形にしたいですか?私は答えを見つけようとしています、後で私はそれを考え出したかもしれません。 – mk12
http://stackoverflow.com/questions/214441/how-do-you-make-an-uipickerview-component-wrap-aroundを参照してください – squelart