【问题标题】:ScrollView scrollToPosition programmaticalyScrollView scrollToPosition 以编程方式
【发布时间】:2022-10-19 18:12:44
【问题描述】:

我有一个 ViewController,其中包含 View 和另一个 View

当我用鼠标滚动时,滚动工作正常,但如果我使用方法 scrollView.setContentOffset 没有任何反应。

我尝试使用 scrollView.delegate = 检查滚动是否可用

用户界面控制器

class WishListViewController: UIViewController {

 private lazy var wishListHeaderView: WishListHeaderView = {
        let view = WishListHeaderView()
        view.delegate = self
        
        return view
    }()

}

界面视图

class WishListHeaderView: UICollectionReusableView {

private lazy var wishListNavigationView: WishListNavigationView = {
        let view = WishListNavigationView()
        view.delegate = self

        return view
    }()
 }

当前带有滚动的视图,不起作用

private lazy var scrollView: UIScrollView = {
        let scrollView = UIScrollView()
        scrollView.showsHorizontalScrollIndicator = false
        
        return scrollView
    }()

private lazy var tabsStackView: UIStackView = {
        let stackView = UIStackView()
        stackView.distribution = .fill
        stackView.axis = .horizontal
        stackView.spacing = 8
        stackView.backgroundColor = PaletteApp.grayBackgroundButton
        
        return stackView
    }()

private func commonInit() {
        addSubview(scrollView)
        scrollView.snp.makeConstraints { make in
            make.left.right.top.bottom.equalToSuperview().inset(16)
            make.height.equalTo(38)
        }
        
        scrollView.addSubview(tabsStackView)
        tabsStackView.snp.makeConstraints { make in
            make.edges.equalToSuperview()
        }
   }
.........

这是此视图中的方法,调试器显示我在此方法中。在此之后,如果我使用 print 我会看到 scrollview Offset (100, 0)

 func scrollToFirstTab() {
        self.scrollView.setContentOffset(CGPoint(x: 100, y: 0), animated: true)
    }

哪里有问题?谢谢

【问题讨论】:

  • 你在哪里打电话给scrollToFirstTab?我没有在你的sn-ps中找到它。
  • UIViewController -> func scrollToFirstTab -> UIView -> func scrollToFirstTab -> UIView -> func scrollToFirstTab
  • 我不明白您的评论应该是什么意思,但是,再一次,您的代码 sn-ps 没有显示您如何以及在何处调用 scrollToFirstTab 方法。
  • (1)我真的不明白你的评论,(2)我没有要求调用链,以及(3)最重要的是,我真的不理解寻求帮助的人的粗鲁。

标签: swift


【解决方案1】:

内容偏移不是正确的方法,偏移是内容和滚动视图本身之间的差距。有关内容偏移的更多信息,请查看此answer

您需要使用func scrollRectToVisible(CGRect, animated: Bool).

CGRect.zero 滚动到顶部。

【讨论】:

    猜你喜欢
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-07
    • 2015-07-12
    相关资源
    最近更新 更多