Swift使用ViewCode实现ViewPager点击按钮控制ScrollView翻页问题
解决方案
你当前的按钮点击方法仅修改了页码变量和分页控件的选中状态,未调用滚动方法,因此无法触发scrollView翻页。同时原有边界判断存在越界风险,按以下调整actionBeforePressed和actionNextPressed两个方法即可:
@objc private func actionBeforePressed() { // 第一页禁止继续上翻 guard currentPage > 0 else { return } currentPage -= 1 scrollView.scrollTo(horizontalPage: currentPage) } @objc private func actionNextPressed() { // 最后一页禁止继续下翻,页码从0开始计数,最大有效页码为 pages.count - 1 guard currentPage < pages.count - 1 else { return } currentPage += 1 scrollView.scrollTo(horizontalPage: currentPage) }
你已经在scrollViewDidScroll代理中实现了滚动时自动同步页码和分页控件状态,所以按钮点击方法中不需要再手动给pageControl.currentPage赋值,滚动时会自动更新,效果和手势滑动翻页完全一致。
你提供的ViewPager运行截图如下:
内容的提问来源于stack exchange,提问作者Wallace Baldenebre
相关产品推荐
相关产品推荐


