制作“阅读更多”' tableview单元格中的按钮

时间:2016-07-30 11:20:47

标签: ios iphone swift tableview

我有一个简单的Tableview,它有动态单元格。

每个单元格有3个元素(问题为UILabel - 答案为UITextView - 读取为UIButton

我只需要在每个单元格中显示来自Answer的2行,当我点击read more按钮时,单元格的高度应根据答案textview字符动态变化。

这是我的呼叫表格单元格方法:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
            tableCell = myTable.dequeueReusableCellWithIdentifier("fqaCell") as! fqaTableViewCell
             myTable.estimatedRowHeight = 100
            myTable.rowHeight = 100





            return tableCell!
        }

3 个答案:

答案 0 :(得分:1)

首先,您不应该从rowHeight方法调用cellForRowAtIndexPath,因为每个单元格都会调用它,并在表格视图中应用所有单元格。

使用方法tableView:heightForRowAtIndexPath:tableView:estimatedHeightForRowAtIndexPath:来配置单个单元格。

其次,你应该为你迄今为止尝试过的东西付出一些努力,但我想尝试这些方法会给你提示如何完成你所要求的。

答案 1 :(得分:0)

首先设置textview约束到textview说是=> 80

并且在将其设置为textView时也限制了答案字符串的数量..这样在阅读时我们可以获得更多的实际全长答案..将高度约束拖到表格视图单元格中...并阅读更多按钮单击这样做

//code
@IBAction func readMoreBtn(_ sender: UIButton) {


        let indexPath = IndexPath(row: sender.tag, section: 0)
        let cell = tableView.cellForRow(at: indexPath) as! AnswersCell
        if(cell.answerTextView.text.count < answerList[sender.tag].answer.count){


            cell.answerHeightConstraints.isActive = false

            tableView.beginUpdates()
            cell.answerTextView.addConstraint(NSLayoutConstraint(item:cell.answerTextView, attribute: NSLayoutAttribute.height, relatedBy: NSLayoutRelation.greaterThanOrEqual, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1, constant: 80))


       cell.answerTextView.text = alertsFeedList[sender.tag].answer

            cell.readMoreBtnOfCell.isHidden = true
            tableView.endUpdates()


        }

您必须将按钮拖动到单元格作为插座,并在表格视图中将其作为操作拖动。在cellForRowAt执行此操作cell.readMoreBtnOfCell.tag = indexPath.row

答案 2 :(得分:-1)

首先要实现这一点,在viewDidLoad方法中将rowHeight初始化为UITableViewAutomticDimension,并将estimatedRowHeight初始化为100(根据您的代码)。这将有助于根据其内容调整单元格的大小。现在,如果你想显示lable的整个文本,那么将lable的numberOfLine设置为0,否则2.为了实现这一点,维护一个字典或数组来存储bool状态所有单元格的read more按钮。单击按钮时切换其值,然后重新加载tableview或重新加载相应的单元格。希望这会帮助你。 :)