gpt4 book ai didi

ios - 使用 UIRefreshControl 在 UITableView 中禁用底部反弹

转载 作者:可可西里 更新时间:2023-11-01 00:52:18 25 4
gpt4 key购买 nike

我想禁用 UITableView 底部反弹,我不能在 Storyboard 中使用标准的“反弹”属性,bcs UIRefreshControl 需要顶部反弹才能工作。所以我试过this solution :

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView.contentOffset.y >= scrollView.contentSize.height - scrollView.frame.size.height) {
[scrollView setContentOffset:CGPointMake(scrollView.contentOffset.x, scrollView.contentSize.height - scrollView.frame.size.height)];
}

如果内容高度大于屏幕大小,它工作正常,但在其他情况下崩溃: enter image description here

正如您在上图中看到的那样,UIRefreshControl 没有被隐藏(如果 UIRefreshControll 被隐藏,uitableview 中只有 3 个单元格,底部有空白区域)。我试图通过在我的方法中添加 UIRefreshControl 高度来解决这个问题,但它也没有帮助:

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

我在顶部有空白并且 RefreshControl 停止工作:

enter image description here

我做错了什么?谢谢。

附言我的 viewDidLoad 方法:

override func viewDidLoad() {
super.viewDidLoad()

self.refreshControl = UIRefreshControl()
self.refreshControl!.attributedTitle = NSAttributedString(string: "Обновление")
self.refreshControl!.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged)
self.edgesForExtendedLayout = UIRectEdge.None;
tableView.allowsMultipleSelectionDuringEditing = false;
tableView.tableFooterView = UIView()
// menu button
if self.revealViewController() != nil {
menuButton.target = self.revealViewController()
menuButton.action = "revealToggle:"
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
}

最佳答案

目前我找到了非常愚蠢的解决方案:

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)
}
}

我仅在 contentSize.height > self.view.frame.size.height 时禁用反弹,希望有人知道如何做得更好。

关于ios - 使用 UIRefreshControl 在 UITableView 中禁用底部反弹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33369204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com