我正在尝试制作一个类似于facebook等应用程序的tableview,它会显示帖子的文本,如果帖子太大,它会缩小尺寸并有一个“Read More”按钮。我已经看了很多不同的解决方案,用于将UITextViews调整到文本的高度,但是没有一个解决我的问题。我的问题只存在于大帖子中。当我有一个大帖子时,我的返回textView高度的函数应该在展开之前返回帖子的maxHeight。这部分有效。但是,当我单击“Read More”按钮时,我在全文ViewView的底部有大量的空白区域。这是我的代码:
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return heightForTextOfRow(indexPath.row) + PostCell.additionalVertSpaceNeeded
}
func heightForTextOfRow(row: Int) -> CGFloat {
var textView = UITextView(frame: CGRectMake(0, 0, prototypeTextViewWidth, CGFloat.max))
let post = data[row]
textView.text = (post.postText as NSString).stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
textView.textContainer.lineFragmentPadding = 0
textView.textContainerInset = UIEdgeInsetsZero
textView.font = PostCell.textViewFont
textView.frame.size = textView.sizeThatFits(CGSizeMake(prototypeTextViewWidth, CGFloat.max))
if textView.frame.size.height > maxHeight && !post.seeMore {
return maxHeight
} else {
return textView.frame.size.height
}
}
代码的一些解释:
任何帮助将不胜感激...我已经尝试了许多解决方案来调整UITextView的大小,并且都有同样的问题。提前谢谢!