gpt4 book ai didi

ios - 使用动画完成处理程序的 UIScrollView 分页

转载 作者:搜寻专家 更新时间:2023-11-01 06:21:24 28 4
gpt4 key购买 nike

我有一个带有按钮的 UIScrollview,我用它来左右翻页:

@IBAction func leftPressed(sender: AnyObject) {

self.scrollView!.setContentOffset(CGPointMake(0, 0), animated: true)
}

我想在 ScrollView 完成分页动画后执行一个 Action 。像这样的东西:

@IBAction func leftPressed(sender: AnyObject) {

self.scrollView!.setContentOffset(CGPointMake(0, 0), animated: true)

secondFunction()
}

上面的代码不起作用,因为第二个函数在 ScrollView 完成动画偏移量之前运行。我最初的 react 是使用完成处理程序,但我不确定如何将完成处理程序应用于 setContentOffset 函数。我试过:

func animatePaging(completion: () -> Void) {

self.mainScrollView!.setContentOffset(CGPointMake(0, 0), animated: true)

completion()
}

打电话

animatePaging(completion: self.secondFunction())

但我收到错误消息“无法使用类型为‘(completion())’的参数列表调用‘animatePaging’。有什么想法吗?

最佳答案

问题是您需要滚动动画本身的完成处理程序。但是 setContentOffset(_:animated:) 没有完成处理程序。

一个解决方案是您使用 UIView 的静态函数 animateWithDuration(_:animations:completion:) 自行设置滚动动画。该函数有一个完成处理程序,您可以使用:

UIView.animateWithDuration(0.5, animations: { () -> Void in
self.scrollView.contentOffset = CGPointMake(0, 0)
}) { (finished) -> Void in
self.secondFunction()
}

关于ios - 使用动画完成处理程序的 UIScrollView 分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33424684/

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