我有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
有谁知道如何解决这个问题?
答案 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()
}
请试试这个