UITableViewAutomaticDimension导致问题

时间:2015-09-19 15:16:52

标签: ios swift uitableview

我正在制作一个带文字帖子的应用,但我意识到很多文字帖子都会很长,所以我添加了一个节目全部少按钮,但当你按下它时,有时单元格会消失,你向上滚动它会跳到单元格的中间。这是它的样子,因为它很难解释......

http://makeagif.com/kMFG-g

我相信这是因为这件事发生的......

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”是消息文本。

0 个答案:

没有答案