Как убрать синюю подсветку, когда выбор происходит в UIPickerView - PullRequest
4 голосов
/ 26 мая 2011

, когда я выбираю ячейку в моем измененном виде выбора, появляется синий цвет фона. все другие шаги, которые я видел, не дают мне хорошего ответа. у кого-нибудь есть решение?

Ответы [ 4 ]

3 голосов
/ 06 июня 2011

pickerView.showsSelectionIndicator = NO;

0 голосов
/ 15 июня 2011

Я встречал это. Давайте посмотрим на это в деталях. Чтобы создать свой собственный вид выбора, вы создаете свой собственный класс UIView, например, :

@interface TimeAroundView : UIView 
{
    NSString *title;
    UIImage *image;
}
@property (nonatomic, retain) NSString *title;
@property (nonatomic, retain) UIImage *image;
@end

Затем в вашем собственном контроллере вида сборщика вы создаете некоторый контейнер, например. NSArray, который получит все объекты TimeAroundView, которые вы хотите представить в представлении выбора. Итак, для каждого объекта вы должны сделать

timeAroundViewObject.userInteractionEnabled = NO;

Я думаю - (id) init - лучшее место для заполнения этого контейнера, так что вы получите что-то вроде этого:

- (id)init
{
    self = [super init];
    if (self) {
        // create the data source for this custom picker
        NSMutableArray *viewArray = [[NSMutableArray alloc] init];

        TimeAroundView *earlyMorningView = [[TimeAroundView alloc] initWithFrame:CGRectZero];
        earlyMorningView.title = @"Early Morning";
        earlyMorningView.image = [UIImage imageNamed:@"12-6AM.png"];
        earlyMorningView.userInteractionEnabled = NO;
        [viewArray addObject:earlyMorningView];
        [earlyMorningView release];

        TimeAroundView *lateMorningView = [[TimeAroundView alloc] initWithFrame:CGRectZero];
        lateMorningView.title = @"Late Morning";
        lateMorningView.image = [UIImage imageNamed:@"6-12AM.png"];
        lateMorningView.userInteractionEnabled = NO;
        [viewArray addObject:lateMorningView];
        [lateMorningView release];

        // ....  (more of objects)

        self.customPickerArray = viewArray;
        [viewArray release];
    }

    return self;
}

А в вашем pickerView: viewForRow: forComponent: reusingView: вы просто возвращаете правильный элемент из массива. Это работает для меня.

0 голосов
/ 27 мая 2011

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

0 голосов
/ 26 мая 2011

Просто установите для свойства UITableViewCell selectionStyle значение UITableViewCellEditingStyleNone

cell.selectionStyle = UITableViewCellEditingStyleNone;
...