我想在一個UIPickerView組件中顯示一組連續的數字,但它將像Clock-> Timer應用程序的秒組件一樣環繞。我可以啓用的唯一行爲看起來像是Timer應用程序的小時組件,您只能在一個方向上滾動。如何使UIPickerView組件環繞?
回答
將行數設置爲很大數量並使其從較高值開始就很容易,用戶很少有機會長時間滾動滾輪 - 即便如此,更糟糕的是他們會觸底。
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
// Near-infinite number of rows.
return NSIntegerMax;
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
// Row n is same as row (n modulo numberItems).
return [NSString stringWithFormat:@"%d", row % numberItems];
}
- (void)viewDidLoad {
[super viewDidLoad];
self.pickerView = [[[UIPickerView alloc] initWithFrame:CGRectZero] autorelease];
// ...set pickerView properties... Look at Apple's UICatalog sample code for a good example.
// Set current row to a large value (adjusted to current value if needed).
[pickerView selectRow:currentValue+100000 inComponent:0 animated:NO];
[self.view addSubview:pickerView];
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
NSInteger actualRow = row % numberItems;
// ...
}
我發現我的答案在這裏:
http://forums.macrumors.com/showthread.php?p=6120638&highlight=UIPickerView#post6120638
當它要求行的標題,給它: 代碼:
return [rows objectAtIndex:(row % [rows count])];
當它說用戶didSelectRow:inComponent :,使用像這樣的東西:
代碼:
//we want the selection to always be in the SECOND set (so that it looks like it has stuff before and after)
if (row < [rows count] || row >= (2 * [rows count])) {
row = row % [rows count];
row += [rows count];
[pickerView selectRow:row inComponent:component animated:NO];
}
看來UIPickerView不支持本地包裝,但可以通過插入更多要顯示的數據集並在選擇器停止時將其置於數據集的中間位置來愚弄它。
真棒!萬分感謝 !!好的解決方案真的有幫助 – user1046037 2012-03-21 09:05:00
只需多次創建一個數組,以便多次使用您的數字。可以說,當想要從0到23的數字,並把它放在一個數組中。我們會做10次這樣的...
NSString *stdStepper;
for (int j = 0; j<10; j++) {
for(int i=0; i<24; i++)
{
stdStepper = [NSString stringWithFormat:@"%d", i];
[_hoursArray addObject:stdStepper];
}
}
後來我們設置選擇這樣
[_hoursPickerView selectRow:120 inComponent:0 animated:NO];
所有的答案都沒有真正做出選擇器視圖滾動循環的行0。
我做了一個基於UIScrollView
的循環tableView。並基於這個tableView,我重新實現了UIPickerView
。您可能對此DLPickerView
感興趣。這個選擇器視圖具有UIPickerView
所具有的所有功能,但也提供了許多新功能,並且定製此選取器視圖更容易。
https://github.com/danleechina/DLPickerView
並且要注意的是這DLPickerView
循環滾動真是循環滾動。所有的魔法都是因爲另一個課程DLTableView
而發生的。
- 1. UIPickerView - 選擇組件
- 2. 使用jQuery來環繞元素組
- 3. Java數組環繞型
- 4. 如何使文本環繞JLabel?
- 5. 如何使css列環繞切口
- 6. 使用for循環的UIPickerView
- 7. 如何使用UIPickerView
- 8. 如何讓texelFetchOffset環繞?
- 9. 如何環繞打開?
- 10. 如何圍繞MKAnnotation數組圍繞UIMapView?
- 11. 如何使用MonoTouch更改UIPickerView中組件(列)的數量?
- 12. 如何使用雙組件來調用轉換UIPickerview
- 13. 如何使用包含3個組件的UIPickerView填充UITextField?
- 14. JOptionPane使用自定義Swing組件的文字環繞
- 15. UIPickerView與2個組件
- 16. 雙組件UIPickerView重疊
- 17. 定製的UIPickerView和組件
- 18. UIPickerView 2組件值iPhone
- 19. 帶多個組件的UIPickerView
- 20. UIPickerView - 更改組件寬度
- 21. iOS 7 - UIPickerView彎曲組件
- 22. 如何使用tail和syslog文件環繞?
- 23. 使用fwrite製作文件環繞
- 24. Vim的環繞聲插件使用
- 25. UIPickerView - 循環數據
- 26. 如何使UIPickerView的UItextField
- 27. 圍繞文字環繞HTML
- 28. 使用simple_list_item_multiple_choice環繞文本
- 29. 如何用xml打包(環繞)java matcher組?
- 30. 如何創建一個3組件UIPickerView(模板任何人???)iPhone
這對我來說很好!謝謝。 雖然有任何性能/內存問題? – Dimitris 2009-07-20 23:34:55