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 元素)[重复]

PHP图像从顶部,底部,左侧和右侧裁剪

仅在顶部/底部/左侧/右侧启用悬停

如何在 Swift 的导航栏顶部显示自定义视图?