我知道如何禁止在顶部弹出uitableview - 但我怎么能只在底部进行?

时间:2016-10-07 00:16:37

标签: ios swift uitableview uiscrollview

当用户滚动到顶部时,我设法禁用了弹跳效果。我想以某种方式反转它,以便在底部禁用弹跳效果。你可以帮我修改我的代码吗?

var lastY: CGFloat = 0.0

func scrollViewDidScroll(scrollView: UIScrollView) {
    let currentY = scrollView.contentOffset.y
    let currentBottomY = scrollView.frame.size.height + currentY
    if currentY > lastY {
        //"scrolling down"
        tableView.bounces = true
    } else {
        //"scrolling up"
        // Check that we are not in bottom bounce
        if currentBottomY < scrollView.contentSize.height + scrollView.contentInset.bottom {
            tableView.bounces = false
        }
    }
    lastY = scrollView.contentOffset.y
}

3 个答案:

答案 0 :(得分:5)

您可以尝试此代码

override func scrollViewDidScroll(scrollView: UIScrollView)

{
   if scrollView.contentOffset.y <= 0  
     {
        scrollView.contentOffset = CGPointZero
     }
}

答案 1 :(得分:4)

您是否尝试将bounce和VerticalBounce属性设置为

您可以以编程方式设置这些属性,如

在Swift中

tableView.bounces = false
tableView.alwaysBounceVertical = false

在Objective-C

tableView.bounces = NO;
tableView.alwaysBounceVertical = NO;

OR

如果您想从故事板进行此操作。让你的tableview设置如下:

enter image description here

答案 2 :(得分:0)

可能会在以下代码段后帮助您:

override func scrollViewDidScroll(scrollView: UIScrollView) {
    if scrollView.contentSize.height > self.view.frame.size.height && scrollView.contentOffset.y >= scrollView.contentSize.height - scrollView.frame.size.height {
        scrollView.setContentOffset(CGPoint(x: scrollView.contentOffset.x, y: scrollView.contentSize.height - scrollView.frame.size.height), animated: false)
    }
}