我想创建一个外观和工作方式类似于 itune 商店帐户的国家/地区选择字段的选择器。这就是我所说的。
http://i38.tinypic.com/5p0w91.jpg
此选择器没有突出显示行。它在所选行的前面标有“正确”标志。用户可以滚动此选择器,然后选择该行,以便“正确”标志将出现在新选择的行前面。有人可以帮忙吗?
我想创建一个外观和工作方式类似于 itune 商店帐户的国家/地区选择字段的选择器。这就是我所说的。
http://i38.tinypic.com/5p0w91.jpg
此选择器没有突出显示行。它在所选行的前面标有“正确”标志。用户可以滚动此选择器,然后选择该行,以便“正确”标志将出现在新选择的行前面。有人可以帮忙吗?
这可以使用带有自定义组件视图的选择器相对容易地完成。使用实例变量来跟踪您选择的行,并相应地更改标签的颜色。如果您想包含复选标记,则需要更进一步并使用 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];
}
我不熟悉编码应用程序,但对于基于浏览器的 UI (Safari),您只需使用一个简单的下拉菜单:
<select>
<option>Country 1</option>
<option>Country 2</option>
...
<option>Country N</option>
</select>
猜测 iPhone SDK 中的等价物应该是一样的。