objective-c – 在Swift中,你如何编写scrollViewWillEndDragging withVelocity targetContentOffset方法?

objective-c – 在Swift中,你如何编写scrollViewWillEndDragging withVelocity targetContentOffset方法?,第1张

概述怎么会在 Swift中写这个? 更新:发布我正在尝试转换的方法,最初发布了一个不同于我试图隐藏的方法 这适用于Objective C,但不适用于Swift.当我尝试将ceilf和floorf与CGFloat一起使用时,我得到了转换错误. - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoin 怎么会在 Swift中写这个?

更新:发布我正在尝试转换的方法,最初发布了一个不同于我试图隐藏的方法

这适用于Objective C,但不适用于Swift.当我尝试将ceilf和floorf与CGfloat一起使用时,我得到了转换错误.

- (voID)scrollVIEwWillEndDragging:(UIScrollVIEw *)scrollVIEw withVeLocity:(CGPoint)veLocity targetContentOffset:(inout CGPoint *)targetContentOffset{    float pageWIDth = 200 + 30; // wIDth + space    float currentOffset = scrollVIEw.contentOffset.x;    float targetoffset = targetContentOffset->x;    float newTargetoffset = 0;    if (targetoffset > currentOffset)        newTargetoffset = ceilf(currentOffset / pageWIDth) * pageWIDth;    else        newTargetoffset = floorf(currentOffset / pageWIDth) * pageWIDth;    if (newTargetoffset < 0)        newTargetoffset = 0;    else if (newTargetoffset > scrollVIEw.contentSize.wIDth)        newTargetoffset = scrollVIEw.contentSize.wIDth;    targetContentOffset->x = currentOffset;    [scrollVIEw setContentOffset:CGPointMake(newTargetoffset,0) animated:YES];}
解决方法 回答Christian:我能够在Swift中重写它.我将所有内容设置为float来进行数学计算,然后转换为CGfloat,因为Christian提到了可能.他的回答在技术上是正确的,但是向我展示了一个更新的iOS开发人员如何用Swift编写这个是我想要的.

func scrollVIEwWillEndDragging(scrollVIEw: UIScrollVIEw!,withVeLocity veLocity: CGPoint,targetContentOffset: UnsafePointer<CGPoint>) {     var pageWIDth = float(200 + 30)     var currentOffset = float(scrollVIEw.contentOffset.x)     var targetoffset = float(targetContentOffset.memory.x)     var newTargetoffset = float(0)     var scrollVIEwWIDth = float(scrollVIEw.contentSize.wIDth)     if targetoffset > currentOffset {         newTargetoffset = ceilf(currentOffset / pageWIDth) * pageWIDth     } else {         newTargetoffset = floorf(currentOffset / pageWIDth) * pageWIDth     }     if newTargetoffset < 0 {         newTargetoffset = 0     } else if newTargetoffset > currentOffset {         newTargetoffset = currentOffset     }     float(targetContentOffset.memory.x) == currentOffset     scrollVIEw.setContentOffset(CGPointMake(CGfloat(newTargetoffset),0),animated: true) }
总结

以上是内存溢出为你收集整理的objective-c – 在Swift中,你如何编写scrollViewWillEndDragging withVelocity targetContentOffset方法?全部内容,希望文章能够帮你解决objective-c – 在Swift中,你如何编写scrollViewWillEndDragging withVelocity targetContentOffset方法?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1002664.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存