我想創建一個外觀和工作方式類似於itune商店帳戶的國家/地區選擇字段的選擇器。 這是我正在談論的。iphone的pickerview看起來像國家選擇功能
http://i38.tinypic.com/5p0w91.jpg
此選擇器不具有行高亮顯示。它在所選行的前面標有「正確」的符號。用戶可以滾動這個選擇器,然後選擇該行,這樣「正確的」符號將出現在新選擇的行的前面。 有人可以幫忙嗎?
我想創建一個外觀和工作方式類似於itune商店帳戶的國家/地區選擇字段的選擇器。 這是我正在談論的。iphone的pickerview看起來像國家選擇功能
http://i38.tinypic.com/5p0w91.jpg
此選擇器不具有行高亮顯示。它在所選行的前面標有「正確」的符號。用戶可以滾動這個選擇器,然後選擇該行,這樣「正確的」符號將出現在新選擇的行的前面。 有人可以幫忙嗎?
我不熟悉的編碼應用,但對於一個基於瀏覽器的UI(Safari瀏覽器),你只需使用一個簡單的下拉菜單:
<select>
<option>Country 1</option>
<option>Country 2</option>
...
<option>Country N</option>
</select>
猜測無論是在iPhone上的等價SDK應該是一樣的。
使用具有自定義組件視圖的選取器可以相對容易地完成此操作。使用一個實例變量來跟蹤您選擇的行,並相應地更改標籤的顏色。如果你想包含複選標記,你需要更進一步,使用UIView的自定義子類而不是簡單的UILabel。
@interface ViewContainingPicker
{
NSUInteger mySelectedRow;
}
@end
@implementation ViewContainingPicker
// Init, Picker setup, etc
- (UIPickerView *)myPickerView
{
// Create picker, set mySelectedRow to NSNotFound
mySelectedRow = NSNotFound;
return myPickerView;
}
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
UILabel *label = (UILabel *)view;
if (nil == label) {
UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, PICKER_WIDTH, PICKER_ROW_HEIGHT)] autorelease];
}
label.text = @"Label for this row";
// Selected Row will be blue
if (row == mySelectedRow) {
label.textColor = [UIColor blueColor];
} else {
label.textColor = [UIColor blackColor];
}
return label;
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
// Just set selected component and reload, color will change in dataSource pickerView:viewForRow:forComponent:reusingView:
mySelectedRow = row;
[pickerView reloadComponent:component];
}