окно выбора для iphone, которое выглядит как функция выбора страны - PullRequest
0 голосов
/ 24 августа 2010

Я хочу создать сборщик, который будет выглядеть и работать как поле выбора страны в учетной записи магазина itune.Вот о чем я говорю.

http://i38.tinypic.com/5p0w91.jpg

У этого средства выбора нет выделенной строки.Он имеет «правильный» знак, отмеченный перед выбранной строкой.пользователь может прокрутить этот инструмент выбора и затем выбрать строку, чтобы «правильный» знак появился перед вновь выбранной строкой.Может кто-нибудь помочь, пожалуйста?

Ответы [ 2 ]

2 голосов
/ 24 августа 2010

Это можно сделать относительно легко, используя средство выбора с пользовательскими представлениями компонентов. Используйте переменную экземпляра для отслеживания выбранной строки и соответственно измените цвет метки. Если вы хотите включить флажок, вам нужно пойти дальше и использовать собственный подкласс 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];
}

0 голосов
/ 24 августа 2010

Я не знаком с приложениями для кодирования, но для пользовательского интерфейса на основе браузера (Safari) вы просто используете простое раскрывающееся меню:

<select>
<option>Country 1</option>
<option>Country 2</option>
...
<option>Country N</option>
</select>

Угадайте, что является эквивалентом вiPhone SDK должен работать так же.

...