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中有3個NSString,行%[pickerData count]返回以下內容:
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。並基於這個tableView,我重新實現了UIPickerView
。您可能對此DLPickerView
感興趣。這個選擇器視圖具有UIPickerView
所具有的所有功能,但也提供了許多新功能,並且定製此選取器視圖更容易。
https://github.com/danleechina/DLPickerView
並且要注意的是這DLPickerView
循環滾動真是循環滾動。所有的魔法都是因爲另一個課程DLTableView
而發生的。
相關問題
- 1. 羣組的最後和第一個值
- 2. Php - 返回一個值的Foreach,第一個或最後一個
- 3. 獲得第一和最後一個值組 - 與dplyr GROUP_BY最後的()和第()
- 4. DAX - 最後一個值
- 5. 如何打印第一個和最後一個值?
- 6. 更改PHP行的第一個和最後一個值
- 7. 交換數組中的第一個和最後一個值(JAVA)
- 8. 使pyplot.hist()第一個和最後一個bin包含異常值
- 9. 找到序列中的第一個和最後一個值r
- 10. 從POST數組到另一個頁面的最後一個值
- 11. jQuery:如何獲得輸入文本的第一個值和最後一個值
- 12. 第一個和最後ROW_NUMBER
- 13. Array中的錯誤:第一行的最後一個值爲'true'
- 14. 獲取最後一行的第一個單元格的值
- 15. 在值後面加逗號但不爲最後一個
- 16. 我將最後一個值作爲最大值和最小值
- 17. 如何使用xpath獲取第二個最後一個值?
- 18. SQL:LIKE在哪裏條件指定一個字母后跟一個數字後面跟着其他什麼?
- 19. 如何在SQL的第一行和最後一個上選擇一個值?
- 20. PostgreSQL中的一行中的窗函數的第一個和最後一個值
- 21. 輸出一個類別後面跟着產品
- 22. 退出for循環後ArrayList值設置爲最後一個值
- 23. numpy.interpd - 只返回插值後的最後一個值
- 24. jQuery滑塊得到最後一個值
- 25. 最後一個數組值空白?
- 26. 僅輸出最後一個值
- 27. 獲取最後一個ID值w/jQuery
- 28. 返回列的最後一個值
- 29. PHP Array只存儲最後一個值
- 30. 拖動列的最後一個值VBA
你想使它成爲循環?我試圖找到答案,稍後再回來查看,也許我會弄清楚。 – mk12 2009-08-18 03:23:42
查看http://stackoverflow.com/questions/214441/how-do-you-make-an-uipickerview-component-wrap-around – squelart 2009-08-18 03:50:33