我正在使用來自核心數據的文本數據來調整消息容器框架的大小,但是如果這樣做看起來幀的設置速度不夠快。我試圖把代碼放在overrideSubviews和setupViews中無濟於事。NSLayoutConstraints未設置(swift 3)
下面是眼下設置messageContainer框架
if let messageText = cell?.text {
let size = CGSize(width: 100, height: 40)
let options = NSStringDrawingOptions.usesFontLeading.union(.usesLineFragmentOrigin)
let estimatedFrame = NSString(string: messageText).boundingRect(with: size, options: options, attributes: [NSFontAttributeName: UIFont.systemFont(ofSize: 12)], context: nil)
messageContainer.translatesAutoresizingMaskIntoConstraints = false
messageContainer.frame.size.width = estimatedFrame.width
messageContainer.frame.size.height = estimatedFrame.height
addConstraint(NSLayoutConstraint(item: messageLabel, attribute: .left , relatedBy: .equal, toItem: messageContainer, attribute: .left, multiplier: 1, constant: 5))
addConstraint(NSLayoutConstraint(item: messageLabel, attribute: .width , relatedBy: .lessThanOrEqual, toItem: messageContainer, attribute: .width, multiplier: 1, constant: 0))
addConstraint(NSLayoutConstraint(item: messageLabel, attribute: .height , relatedBy: .lessThanOrEqual, toItem: messageContainer, attribute: .height, multiplier: 1, constant: 0))
}
代碼中的文本只跑出畫面和不換行。
有什麼建議嗎?
編輯:我已經包含了容器應該看起來像messageLabel後面的屏幕截圖。這個版本與當前的區別是,當前正在使用的自動佈局,我認爲是什麼導致了問題...
這是在表格視圖單元格內嗎?你可以在圖片中畫出/展示視圖的結構以及你希望實現的目標嗎? – user1046037
已更新的問題。這也是一個UICollectionView單元格 – Stefan