我在iPhone上使用iOS Reminders应用程序,我注意到在tableview中它允许您输入可以换行到新行的文本并继续输入文本以提醒。我注意到单元格的高度会发生变化,以适应提供的提醒文本的大小。我的问题是我知道这可以用UILabel来完成,但是你不能在UILabel中编辑和输入文本吗?所以它必须是UITextField,但我认为UITextField不允许单词换行到新行?我以为它只是在一条线上继续缩小?那我在这里错过了什么?
答案 0 :(得分:1)
它很可能使用允许多行文本的UITextView
。然后,您可以通过查看UITableViewCell
的委托方法,在文本换行到下一行时更改UITextView
的高度。
答案 1 :(得分:0)
您是否尝试过UITextView,它会为您自动换行,但要自动调整表格单元格高度,可能必须使用textViewDelegate didReplaceString方法。
// goes inside the UITextView didReplaceString method
// assumes expectedTextSize is a CGSize struct (like this CGSize expectedTextSize)
expectedTextSize = [myTextView.text sizeWithFont:[UIFont fontWithName:"Arial" size:12] constrainedToSize:CGSizeMake(200, 999999) lineBreakMode:UILineBreakModeWordWrap];
// then in your tableView:heightForRow: table view delegate method
return expectedTextSize.height;