【发布时间】:2014-10-29 22:53:08
【问题描述】:
我正在尝试用 Swift 编写 this(我在第 54 步)。在UICollectionViewLayout 类中,我有一个函数setup 函数
func setup() {
var percentage = 0.0
for i in 0...RotationCount - 1 {
var newPercentage = 0.0
do {
newPercentage = Double((arc4random() % 220) - 110) * 0.0001
println(newPercentage)
} while (fabs(percentage - newPercentage) < 0.006)
percentage = newPercentage
var angle = 2 * M_PI * (1 + percentage)
var transform = CATransform3DMakeRotation(CGFloat(angle), 0, 0, 1)
rotations.append(transform)
}
}
以下是教程中对setup 函数的描述
首先我们创建一个临时的可变数组,我们将对象添加到其中。然后 我们遍历我们的循环,每次都创建一个旋转。我们创建一个 -1.1% 和 1.1% 之间的随机百分比,然后使用它创建一个 调整 CATransform3D。我有点奇怪并添加了一些逻辑 确保我们随机生成的旋转百分比最少 0.6% 与预先生成的不同。这样可以确保堆栈中的照片不会发生所有被旋转的不幸 同样的方法。一旦我们有了变换,我们就将它添加到临时数组中 通过将其包裹在 NSValue 中,然后冲洗并重复。毕竟32 添加了旋转,我们设置了我们的私有数组属性。现在我们只是 需要使用。
当我运行应用程序时,while (fabs(percentage - newPercentage) < 0.006) 行中出现运行时错误。
setup 函数在 prepareLayout() 中调用
override func prepareLayout() {
super.prepareLayout()
setup()
...
}
没有do..while 循环,应用程序运行良好。所以我想知道,为什么?
【问题讨论】: