Изменение внешнего вида UITableCellView до его выделения (из UITableView) - PullRequest
0 голосов
/ 25 января 2011

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

Я пытаюсь создать табличное представление, которое выглядит так жекак приложение Контакты.Моя первая проблема заключается в том, что запись будет содержать как выделенную, так и не выделенную строку в заданном ряду, например "John Appleseed " или "Martin Luther King ".Я подумал, что мне нужно иметь два UILabel в моем UITableViewCell (возможно, моя первая ошибка).

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

Однако, когда строка выделена (но еще не выбрана), текст UILabel по умолчанию переключается на белый, а моя специальная UILabel остается черной.Я могу только заставить текст UILabel изменить цвет на белый в методах UITableViewDelegate, которые происходят ПОСЛЕ выделения.Из-за этого у меня заметна белая вспышка -> черный.

Теперь я вижу метод UITableViewCell 'setHighlighted: animated:', который я мог бы переопределить, если бы использовал подклассы, но я надеялся, что это был другой способ приблизиться к нему.

Мысли?

1 Ответ

0 голосов
/ 26 января 2011

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

Должно быть намного проще создать собственный подкласс UITableViewCell и переопределить его -drawRect: метод для рисования самого текста. Взгляните на категорию UIStringDrawing в NSString, чтобы найти список сообщений, которые вы можете отправить экземпляру NSString, чтобы сказать ему, чтобы он рисовал себя либо в заданной точке, либо внутри данного прямоугольника.

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