• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - UIScrollView 的自定义分页

[复制链接]
菜鸟教程小白 发表于 2022-12-11 18:30:03 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个 UIScrollView 可以水平滚动并启用分页。有没有办法改变 ScrollView 的分页,使其在 ScrollView 的整个长度中捕捉到一半。我添加了显示我正在寻找的图片。

Page 1

Page 2

Page 3

override func viewDidLoad() {
    super.viewDidLoad()


let scrollView = UIScrollView()
scrollView.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height)
scrollView.contentSize = CGSize(width: self.view.frame.size.width * 2, height: self.view.frame.size.height)
scrollView.isPagingEnabled = true
self.view.addSubview(scrollView)

let view1 = UIView()
view1.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width / 2, height: self.view.frame.size.height)
view1.backgroundColor = UIColor.purple
scrollView.addSubview(view1)

let view2 = UIView()
view2.frame = CGRect(x: self.view.frame.size.width / 2, y: 0, width: self.view.frame.size.width / 2, height: self.view.frame.size.height)
view2.backgroundColor = UIColor.green
scrollView.addSubview(view2)

let view3 = UIView()
view3.frame = CGRect(x: self.view.frame.size.width, y: 0, width: self.view.frame.size.width / 2, height: self.view.frame.size.height)
view3.backgroundColor = UIColor.yellow
scrollView.addSubview(view3)

let view4 = UIView()
view4.frame = CGRect(x: self.view.frame.size.width + self.view.frame.size.width / 2, y: 0, width: self.view.frame.size.width / 2, height: self.view.frame.size.height)
view4.backgroundColor = UIColor.red
scrollView.addSubview(view4)

}



Best Answer-推荐答案


您可以为 ScrollView 设置委托(delegate)并实现 UIScrollViewDelegate 方法之一:

func scrollViewWillEndDragging(
    _ scrollView: UIScrollView,
    withVelocity velocity: CGPoint,
    targetContentOffset: UnsafeMutablePointer<CGPoint>
)

当您收到此调用时,您需要执行一些自定义逻辑。具体来说,您将检查 targetContentOffset 以及 velocity 以分别查看 scrollView 预期停止的位置以及用户拖动的方向。然后将 targetContentOffset 更改为它应该实际停止的新位置。

在您的情况下,新的 targetContentOffsetx 值将是偶数页的倍数。显然,如果您有奇数页,则必须考虑最后一页的偏移量并做一些不同的事情。

您可能还需要禁用默认的 UIScrollView 分页并自己处理所有分页,因为您的自定义行为与默认分页行为冲突。

关于ios - UIScrollView 的自定义分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41496659/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap