我正在尝试在Objective-c中创建3D立方体动画,这是我想使用我的代码的一段代码。有人知道如何将这些方法转换为Objective-C吗?我没有在Apple文档中找到任何东西。
let hasCompletedPaging = (xOffset / scrollView.frame.width).truncatingRemainder(dividingBy: 1) == 0
答案 0 :(得分:1)
truncatingRemainder(dividingBy: 1)
仅给出结果的小数部分。因此,将truncatingRemainder(dividingBy: 1)
与0
进行比较就等于检查结果是否为整数。
一个简单的转换可能是:
BOOL hasCompletedPaging = (xOffset / scrollView.frame.width) == round(xOffset / scrollView.frame.width);
但是由于浮点数的不精确性,所以这不是理想的选择。
更好的检查方法可能是:
BOOL hasCompletedPaging = fabs(xOffset / scrollView.frame.width - round(xOffset / scrollView.frame.width)) < 0.000001;
但是最简单的解决方案是使用fmod
。结果为零时,表示第一个数字是第二个的整数倍:
BOOL hasCompletedPaging = fmod(xOffset, scrollView.frame.width) < 0.000001;
答案 1 :(得分:0)
基于Apple的 truncatingRemainder 文档,该函数的C风格版本如下所示:
CGFloat TruncatingReminder(CGFloat x, CGFloat dividingBy) {
return x - dividingBy * floor(x / dividingBy);
}
P.S。我知道我的回答还很晚,但是可能对某些人有用。