У меня есть UITextView внутри статического UITableViewCell стесненного так:Expand UITableViewCell, когда размер содержимого изменяется
В методе viewDidLoad() мой стол класса представления я хочу, чтобы иметь возможность изменить текст UITextView, имеют размер изменения UITextView, чтобы он соответствовал тексту (у меня отключена прокрутка в UITextView), а затем UITableViewCell по-прежнему ограничивается, как я и предполагал. Это моя попытка сделать так:
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.delegate = self
self.aboutTextView.text = "Some Long String"
//implement self sizing cells
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 400.0
//set the frame of the UITextView to match the size of the text
let fixedWidth = aboutTextView.frame.size.width
let newSize = aboutTextView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max))
var newFrame = aboutTextView.frame
newFrame.size = CGSize(width: max(newSize.width, fixedWidth), height: newSize.height)
aboutTextView.frame = newFrame;
//This is returning the new size correctly
//Reload the tableview, nothing happens, text view remains the same size as in the storyboard
self.tableView.reloadData()
}
Хотя новый кадр больше, чем размер по умолчанию в раскадровке, ничего не происходит, когда Tableview перезагружается. Я попробовал setNeedsLayout() в UITextView и не повезло. Я также попытался ограничить высоту UITextView и изменить константу высоты через IBOutlet, но тогда ограничения по очевидным причинам нарушаются. Кто-нибудь знает, почему мой код не работает? Любой лучший способ делать то, что я пытаюсь сделать?
Я поместил код высоты строки в этот метод делегата и вернул IBOutlet статического UITableViewCell. Все называлось правильно, но ничего не было решено. –
Почему вы возвращаете IBOutlet? Вы должны создать новый cll или использовать идентификатор повторного использования для создания новых ячеек. – dunnmifflsys
Это _static_ cell. Идентификатор повторного использования полезен только в том случае, если я собираюсь сделать несколько его экземпляров. –