2012-09-25 2 views
0

У меня есть несколько UITableViewCell, в которых есть пользовательские кнопки. Эти кнопки закрывают текст в нескольких ячейках. Как установить ширину атрибута textLabel внутри ячейки, чтобы этого не произошло? Кажется, это не работает.Как изменить ширину textLabel в UITableViewCell

cell.textLabel.font = UIFont.boldSystemFontOfSize(16) 
cell.textLabel.adjustsFontSizeToFitWidth = true 
cell.textLabel.numberOfLines = 0 
cell.textLabel.lineBreakMode = UILineBreakModeWordWrap 
cell.textLabel.preferredMaxLayoutWidth = 200 

Я запускаю это в методе tableView(table_view, willDisplayCell:cell, forRowAtIndexPath:index_path).

Установка рамки в это время также не работает.

+2

Не может ли быть проще подкласс UITableViewCell или UIView и создать его таким образом? – Luke

+0

Возможно, но я не уверен, почему это не работает. Являются ли 'preferredMaxLayoutWidth' и' frame' замороженными в этой точке? – silasjmatson

+1

Я считаю, что рамка textLabel доступна только для чтения – SlateEntropy

ответ

2

Если вам нужно, чтобы ваш UITableViewCell s выглядел лучше, чем по умолчанию, вы должны, вероятно, нарисовать полное содержимое, чтобы ваши пользовательские кнопки и текст и, возможно, другая информация, в вашем подклассе вида и возвращали его как вид для ячейки.

0

Возможно, создайте/разделите UILabel и добавьте его в ячейку. Таким образом вы можете установить его фрейм.

+0

Вот что я в итоге сделал. – silasjmatson