2015-04-07 4 views
0

Я добавил textView в свой tableViewCell через интерфейс. Однако я хочу установить размер равным содержимому в textView. это не работает. До сих пор я сделал ниже, который не меняет кадр TextViewset textView height to equal contentSize swift

var size: CGSize = cell.titleViewLabel.systemLayoutSizeFittingSize(cell.titleViewLabel.contentSize) 
var frame: CGRect = cell.titleViewLabel.frame 
frame.size.height = size.height 
cell.titleViewLabel.frame = frame 
+0

Вы используете автоматическую компоновку? Почему бы просто не установить некоторые ограничения позиционирования и не позволить размер встроенного контента взять на себя. –

+0

Возможный дубликат [Использование автоматической компоновки в UITableView для динамических раскладок ячеек и высоты строк] (http://stackoverflow.com/questions/18746929/using-auto-layout-in-uitableview-for-dynamic-cell-layouts- height-row-height) –

ответ

1

Я бы рекомендовал использовать autolayout вместо установки размера кадра вручную. Однако, если вы должны установить его вручную, вам нужно получить размер текста, который вы устанавливаете.

let labelSize = myLabel.text.sizeWithAttributes([NSFontAttributeName:myLabel.font!]) 

let labelHeight = labelSize.height; 

Используя это, вы должны иметь размер и высоту текста, который затем вы можете установить как определенную высоту кадра.

+0

AutoLayout. Не могли бы вы объяснить или отправить мне ссылку, которая могла бы помочь мне достичь того, что я хочу использовать? –

+0

Не прямой ответ, но я рекомендую прочитать это сообщение о том, как использовать как autolayouts intrinsicContentSize, так и systemLayoutSizeFittingSize: http://stackoverflow.com/questions/18118021/how-to-resize-superview-to-fit-all- подвиды-с-autolayout/18155803 # 18155803 – tskulbru