Swift 4适配:替换CGRectGetWidth为CGRect.width并计算滚动页码
Swift 4 适配后的滚动代理代码
没问题,这就帮你把这段UIScrollView代理代码适配到Swift 4版本。正如系统提示的那样,CGRectGetWidth()这类C风格的函数在Swift 4里已经被CGRect.width这个属性替代了,我们只需要替换这一处API调用就可以了,页码计算的逻辑完全不需要改动。
适配后的完整代码如下:
// MARK: UIScrollViewDelegate override func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) { let pageWidth: CGFloat = scrollView.frame.width let currentPage: CGFloat = floor((scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1 // 更新页码指示器 pageControl.currentPage = Int(currentPage) }
简单说明下:
- 把
CGRectGetWidth(scrollView.frame)直接替换成scrollView.frame.width,这是Swift 4及以后推荐的更简洁、更符合Swift风格的写法 - 原有的页码计算逻辑保持不变,依然能准确计算滚动结束后的当前页码
内容的提问来源于stack exchange,提问作者Faris
相关产品推荐
相关产品推荐

