У меня есть довольно простой TableViewController, перечисляющий элементы, которые можно проверять по мере их сбора. Я успешно реализовал в каждой ячейке метку, обернутую словом, и обновил heightForRowAtIndexPath, чтобы каждая строка имела подходящую высоту. Это работает хорошо:
примечание: я настроил яркий фоновый цвет в contentView ячейки для целей тестирования.
Проблема возникает, когда я пытаюсь добавить кнопку с галочкой в качестве 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 пикселей.
В приведенном выше примере в качестве ширины кнопки используется 44x44.
Кто-нибудь может объяснить, что здесь происходит? Зачем было бы другое выравнивание, когда contentView имеет две строки по сравнению с одной? Фактически, для каждой дополнительной строки, используемой в тексте, выравнивание все больше отключается. Я могу добавить код для текста строки, если это поможет.