tableView 正在向上移动超过定义的值

Posted

技术标签:

【中文标题】tableView 正在向上移动超过定义的值【英文标题】:tableView is moving up more than the defined value 【发布时间】:2016-06-18 07:20:25 【问题描述】:

我有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 的框架而发生的

为此,我尝试将内容设置为 inSet:

tableView.contentInset = (UIEdgeInsets(top: 0, left: 0, bottom: -30, right: 0))

但还是有同样的问题

编辑开始时从ScrollViewDidScroll 中查看contentOffSet.y 的值:

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,然后是143.0

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

【问题讨论】:

【参考方案1】:
  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()


请试试这个

【讨论】:

嘿@KaranJeet 感谢您的回复,这里的isiphone6 是什么? 不要使用 cgfloaft(305 + 70 * cgfloat(Tisiphone 6))。这些是检查。只使用 cgpointmake(0,300(向上移动))

以上是关于tableView 正在向上移动超过定义的值的主要内容,如果未能解决你的问题,请参考以下文章

更改表格宽度时,Swift Tableview 向上移动

将超过一半的单元格移动到另一个部分时,Tableview 崩溃

如何向上移动 tableView 以便从底部弹出一个视图以便它不在 iPhone 中的表格顶部

TableView - 单元格的上移和下移功能

当表格视图向上滚动时,表格视图第一部分(第 0 部分)没有向上移动

从 Tableview 单元格中获取超过一个 TextField 的值?