Swift - 在 3 个方向(顶部、右侧或底部)随机旋转 UIImageView
Posted
技术标签:
【中文标题】Swift - 在 3 个方向(顶部、右侧或底部)随机旋转 UIImageView【英文标题】:Swift - randomly rotate UIImageView in 3 directions (top, right or bottom) 【发布时间】:2018-08-10 07:46:06 【问题描述】:我是Swift
的新手,真的需要一些帮助。
我有一个带有箭头图像的UIImageView
。我希望箭头在单击按钮时随机改变其方向,仅在三个方向上单击:顶部、右侧和底部。
我想用CGAffineTransform
旋转UIImageView
,但我该怎么做?
-
从旋转中排除左方向?
让箭头随机改变方向(上、右、下)
?
here's a screen I work with
【问题讨论】:
请分享您迄今为止的尝试 好吧,我想出了一个想法,用三种情况创建一个 Enum RotationDirection:上、右、下。而且我还有一行 CGAffineTransform 的代码,到目前为止它与 Enum 没有任何联系。 self.arrowImageView.transform = self.arrowImageView.transform.rotated(by: CGFloat((Double.pi / 2))) 这行代码精细地旋转 UIImageView 中的图像,但在所有 4 个方向上(显然)。我在这里卡住了;) 请参考这个问题***.com/questions/40882487/…这可能对您有所帮助 【参考方案1】:希望对您有所帮助:
let degree = [Double.pi / 2, Double.pi, Double.pi * 2]
let randomIndex = Int(arc4random_uniform(UInt32(degree.count)))
UIView.animate(withDuration: 1.0)
self.imageView.transform = CGAffineTransform(rotationAngle: CGFloat(degree[randomIndex]))
【讨论】:
谢谢!这很有帮助。唯一的一件事是为什么箭头在每次点击时都不会改变它的旋转?有时即使单击按钮后它也会静止... @Dary 因为它正在从数组中选择随机值。 因此,按照这种逻辑,有时方向会保持不变,这就是为什么单击按钮时没有旋转的原因。是这样吗? 非常感谢!最后一个问题给你:)你的例子中的箭头仍然向左旋转。但是,我需要从旋转中排除这个方向。我该怎么做? 感谢您的帮助。欣赏!【参考方案2】:生成一个随机数:
let randomInt = Int.random(in: 0..<3)
switch randomInt
case 0:
rotateRight()
case 1:
rotateUp()
case 2:
rotateDown()
default:
rotateWhatever()
【讨论】:
以上是关于Swift - 在 3 个方向(顶部、右侧或底部)随机旋转 UIImageView的主要内容,如果未能解决你的问题,请参考以下文章
php 在全局设置(Builder UI)中添加所有方向,即顶部,右侧,底部和左侧的边距
php 在全局设置(Builder UI)中添加所有方向,即顶部,右侧,底部和左侧的边距
css3 转换:切换 css 类不会转换顶部/左侧/底部/右侧(由于添加了 :before 或 :after 元素)[重复]