Выравнивание accessoryView при использовании многострочного contentView - PullRequest
2 голосов
/ 21 февраля 2012

У меня есть довольно простой TableViewController, перечисляющий элементы, которые можно проверять по мере их сбора. Я успешно реализовал в каждой ячейке метку, обернутую словом, и обновил heightForRowAtIndexPath, чтобы каждая строка имела подходящую высоту. Это работает хорошо:

примечание: я настроил яркий фоновый цвет в contentView ячейки для целей тестирования.

enter image description here

Проблема возникает, когда я пытаюсь добавить кнопку с галочкой в ​​качестве accessoryView для каждой ячейки:

    UIImage *image = [UIImage imageNamed:@"checked.png"];

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    CGRect frame = CGRectMake(0.0, 0.0, 44.0, 44.0);
    button.frame = frame;
    [button setImage:image forState:UIControlStateNormal]
    button.backgroundColor = [UIColor redColor];
    cell.accessoryView = button;

По некоторым причинам выравнивание не совсем подходит для моих ячеек, которые занимают более одной строки, когда размер кнопки превышает примерно 26x26 пикселей.

enter image description here

В приведенном выше примере в качестве ширины кнопки используется 44x44.

Кто-нибудь может объяснить, что здесь происходит? Зачем было бы другое выравнивание, когда contentView имеет две строки по сравнению с одной? Фактически, для каждой дополнительной строки, используемой в тексте, выравнивание все больше отключается. Я могу добавить код для текста строки, если это поможет.

Ответы [ 2 ]

3 голосов
/ 03 сентября 2012

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

Итак, код, используемый в heightForRow: atIndexPath: должен быть скопированв cellForRowAtIndexPath и используется для установки высоты кнопки.

0 голосов
/ 14 мая 2012

У меня была та же проблема, и, к сожалению, я не могу объяснить странное поведение и не решил ее.Но я сделал некоторые наблюдения, которые могут помочь другим, борющимся с этой проблемой.

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

Поскольку я просто хотел получить крошечное изображение, это сработало для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...