Новый IOS5 UISwitch не выглядит отключенным в UITableViewCell - PullRequest
6 голосов
/ 23 ноября 2011

Я помещаю UISwitch es в UITableViewCell s и пытаюсь отключить его изначально:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    ...
    self.switch = [[UISwitch alloc] init];
    self.switch.enabled = NO;
    cell.accessoryView = self.switch;
    ...
}

В версиях IOS, предшествующих IOS5, (устаревший) переключатель отключен, а также отображается отключенным (затемненным) при отображении представления.

В IOS5 (новый) переключатель отключен, я не могу перевернуть его, но на этом этапе он не выглядит отключенным. Он имеет ту же яркость, что и включенный переключатель.

Если я включу и снова отключу его позже в коде (НЕ в обратном вызове cellForRowAtIndexPath:), он будет выглядеть отключенным (затемненным).

Я что-то не так делаю или это ошибка в IOS5?

Ответы [ 3 ]

3 голосов
/ 23 ноября 2011

Для чего стоит, инициализатор UISwitch назначен -initWithFrame: - вы пробовали использовать это?

2 голосов
/ 25 января 2012

Я столкнулся с той же проблемой с iOS 5. Вы можете использовать -initWithFrame для создания переключателя, а затем вы можете добавить переключатель в качестве подпредставления ячейки contentView и (не accesoryview и не забудьте подсчитать подпредставления contentView, в противном случаеВы можете добавить новый переключатель) методом -addSubview:.

0 голосов
/ 19 апреля 2012

У меня была такая же проблема, и я решил ее, сохранив все свои UIS-переключатели в массиве.

Затем на моем viewDidAppear я перебираю массив, отключая их.

- (void)viewDidAppear:(BOOL)animated {
    for (UISwitch *switchView in switchMArray) {
        switchView.enabled = NO;
    }
}
...