Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在UITableView单元格内自动生成UITextView_Ios_Swift_Uitableview - Fatal编程技术网

Ios 在UITableView单元格内自动生成UITextView

Ios 在UITableView单元格内自动生成UITextView,ios,swift,uitableview,Ios,Swift,Uitableview,我有一个静态UItableView,其中一个单元格包含文本视图,它希望使文本视图自动增长,同时使单元格增长。始终包装文本,而不是剪切文本 在IsAlted文本视图中,我不会面对这个问题,因为我有固定的大小,为了显示长文本,我只在textview中滚动,但在这种情况下,我不想滚动,因为我的UITextView设置为不可滚动,因为父级(UITableView)已经有滚动,我想避免嵌套滚动 我解决这个问题的方法是超高。。。。每次用户使用sizeThatFits(size:CGSize)键入以了解req

我有一个静态UItableView,其中一个单元格包含文本视图,它希望使文本视图自动增长,同时使单元格增长。始终包装文本,而不是剪切文本

在IsAlted文本视图中,我不会面对这个问题,因为我有固定的大小,为了显示长文本,我只在textview中滚动,但在这种情况下,我不想滚动,因为我的UITextView设置为不可滚动,因为父级(UITableView)已经有滚动,我想避免嵌套滚动

我解决这个问题的方法是超高。。。。每次用户使用sizeThatFits(size:CGSize)键入以了解requerid大小,然后设置UITextView单元格大小并正确显示文本时,都会重新加载我的视图

但细胞只增长了一点,还不够,我研究了大小是否合适,以了解是否如我所理解的那样,是一种让一个物体的测量值适合另一个物体的方法,还是有其他参数需要关注,比如填充、边距或收缩,我无法找到这些东西的解释

那么我有这个问题,, 我不明白这个方法吗?我该如何使用它? 我是否走上了实现目标的正确道路?还是有更好的方法

非常感谢你

override func tableView(tableView: UITableView,
               heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

    let defaulHeight: CGFloat = 44

    if indexPath.row == textFieldRowNumber {
        let cellSize = messageTableViewCell.bounds.size
        let wantedSize = longMessageTextField.sizeThatFits(cellSize)
            return wantedSize.height
    } else {
        return defaulHeight
    }
}


func textView(textView: UITextView, shouldChangeTextInRange  range: NSRange, replacementText text: String) -> Bool {
    textView.resignFirstResponder()
    let previousMessageInput = longMessageTextField.text
    longMessageTextField.text = previousMessageInput! + text

    let indexToReload = NSIndexPath(forItem: 4, inSection: 0)
    self.tableView.reloadRowsAtIndexPaths([indexToReload], withRowAnimation: UITableViewRowAnimation.Top)        
    return true
}