Wenn Sie den Text eines UITextView manuell mit Code festlegen, wird die textViewDidChange: -Methode nicht aufgerufen. (Wenn Sie den Delegat-Satz Ihrer Textansicht haben, wird es aufgerufen, wenn der Benutzer es bearbeitet.)
Eine mögliche Abhilfe wäre, TextViewDidChange manuell aufzurufen: Sie können den Text jederzeit bearbeiten. Zum Beispiel:
textView.delegate = self
textView.text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
self.textViewDidChange(self.textView)
Art einer hackish Art und Weise, es zu tun, aber es die Arbeit, die Sie
Hope Diese Hilfe getan wird.
bearbeiten
versuchen, diese es Arbeit für mich
class TableViewController: UITableViewController {
@IBOutlet weak var textView: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
tableView.estimatedRowHeight = 70
tableView.rowHeight = UITableViewAutomaticDimension
textView.delegate = self
textView.text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
self.textViewDidChange(self.textView)
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
return 70
}
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if indexPath.item == 1{//****Or index of your textView****
return textView.contentSize.height;
}
return 70
}
}
extension TableViewController: UITextViewDelegate {
func textViewDidChange(_ textView: UITextView) {
tableView.reloadData()
}
}
aktualisieren
class TableViewController: UITableViewController {
@IBOutlet weak var textView: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
tableView.estimatedRowHeight = 70
tableView.rowHeight = UITableViewAutomaticDimension
textView.delegate = self
textView.text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
self.textViewDidChange(self.textView)
tableView.reloadData()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
return 70
}
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if indexPath.item == 0{//****Or index of your textView****
return textView.contentSize.height;
}
return 70
}
}
extension TableViewController: UITextViewDelegate {
func textViewDidChange(_ textView: UITextView) {
}
func textViewDidEndEditing(_ textView: UITextView) {
tableView.reloadData()
}
}
Hoffentlich [diese Antwort] (http://stackoverflow.com/questions/ 39868532/can-i-change-height-of-uitableviewcell-real-time/39870884 # 39870884) könnte für Ihren Fall nützlich sein ... –
@AhmadF Aber meine Delegierten werden nicht angerufen. – Nitesh
Nun, das ist eine andere Geschichte :) Stellen Sie sicher, dass alles so verbunden ist, wie es sollte ... –