tableView向上移动超过定义的值

时间:2016-06-18 07:20:26

标签: uitableview uiscrollview swift2

我有TabBar嵌入式tableViewController并且在我的单元格中我有一个textView并且在textView's编辑开始时我试图向上移动tableView这是怎么做的:

func textViewDidBeginEditing(textView: UITextView) {

 if textView == descriptionTextView {

    let indexPath: NSIndexPath = NSIndexPath(forRow: 4, inSection: 0)
    self.tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: .Middle , animated: true)

    if textView.textColor == UIColor.lightGrayColor() {
        textView.text = nil
        textView.textColor = UIColor.blackColor()
    }
    }
}

它的工作正常,但滚动不够平滑,滚动一些额外的点然后下降也许这是因为tabBars的框架

为此我试图在Set:

中设置内容
tableView.contentInset = (UIEdgeInsets(top: 0, left: 0, bottom: -30, right: 0))

但仍有同样的问题

在编辑开始时查看来自contentOffSet.y的{​​{1}}的值:

ScrollViewDidScroll
上面的

您可以看到,首先它会转到tableView is Moving : 236.5 tableView is Moving : 247.5 tableView is Moving : 254.0 tableView is Moving : 255.5 tableView is Moving : 190.0 tableView is Moving : 189.5 tableView is Moving : 189.0 tableView is Moving : 187.0 tableView is Moving : 185.0 tableView is Moving : 182.0 tableView is Moving : 178.5 tableView is Moving : 175.0 tableView is Moving : 171.0 tableView is Moving : 167.0 tableView is Moving : 163.0 tableView is Moving : 159.0 tableView is Moving : 155.0 tableView is Moving : 152.0 tableView is Moving : 149.0 tableView is Moving : 146.5 tableView is Moving : 144.5 tableView is Moving : 143.5 tableView is Moving : 143.0 ,然后转到255.5

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

  func textViewShouldBeginEditing(textView: UITextView) -> Bool{

 if textView == descriptionTextView {

    self.tableView.frame = CGRectMake(self.tableView.frame.origin.x, self.tableView.frame.origin.y, self.tableView.frame.size.width, self.tableView.frame.size.height - 190 )
    let indexPath: NSIndexPath = NSIndexPath(forRow: 4, inSection: 0)
   UIScrollView .beginAnimations("UP", context: nil)
            UIScrollView .setAnimationDuration(0.3)
            scrollView.contentOffset = CGPointMake(0, CGFloat(305
                + 70 * CGFloat(isiphone6())))
            UIScrollView .commitAnimations()

}

请试试这个