我正在制作一个带文字帖子的应用,但我意识到很多文字帖子都会很长,所以我添加了一个节目全部少按钮,但当你按下它时,有时单元格会消失,你向上滚动它会跳到单元格的中间。这是它的样子,因为它很难解释......
我相信这是因为这件事发生的......
table.rowHeight = UITableViewAutomaticDimension
但是必须使单元格显示自定义文本量。但无论如何这里是代码。
这是实现它的实际功能......
var showingMore = [Bool]()
func showAllAndLess(sender: AnyObject) {
var buttonPosition: CGPoint = sender.convertPoint(CGPointZero, toView: self.table)
var indexPath: NSIndexPath = self.table.indexPathForRowAtPoint(buttonPosition)!
if showingMore[indexPath.row] {
sender.setTitle("Show Less", forState: .Normal)
} else {
sender.setTitle("Show All", forState: .Normal)
}
showingMore[indexPath.row] = !showingMore[indexPath.row]
table.reloadRowsAtIndexPaths([indexPath], withRowAnimation: .None)
}
这是cellForRowAtIndexPath方法中的代码......
showingMore.append(false)
postCellObj.showAllAndLessButton.hidden = true
if showingMore[indexPath.row] {
postCellObj.message.text = messageString
postCellObj.showAllAndLessButton.setTitle("Show Less", forState: .Normal)
postCellObj.showAllAndLessButton.hidden = false
println("Showing Less")
}
else if count(messageString) >= 800 {
var messageNs = messageString as NSString
var messageFinal = messageNs.substringWithRange(NSRange(location: 0, length: 800))
postCellObj.message.text = messageFinal as String + "..."
postCellObj.showAllAndLessButton.setTitle("Show All", forState: .Normal)
postCellObj.showAllAndLessButton.hidden = false
} else {
postCellObj.message.text = messageString
}
}
感谢阅读!我希望我提供了足够的信息。如果你需要更多只是说些什么。 (:
P.S。变量“messageString”是消息文本。