【发布时间】:2015-02-17 06:56:15
【问题描述】:
如何用 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];
}
【问题讨论】:
标签: objective-c xcode swift uicollectionview scrollview