随机 UIImageView Alpha

Random UIImageView Alpha

我正在开发一款应用程序,该应用程序将从四张图片开始,最终会在屏幕上添加更多图片,但现在我正在尝试弄清楚如何让该应用程序随机出现 select 每次一个 UIImageView 并将 alpha 设置为 0.7,其余设置为 1.0。我尝试了不同的方法来让它工作,但它看起来并不好。我怎样才能用我已有的代码来做这件事?我怎么知道他们找到了较低的 alpha 图像?

func randomCGFloat() -> CGFloat {
    return CGFloat(arc4random()) / CGFloat(UInt32.max)
}

extension UIColor {
    static func randomColor() -> UIColor {
        let r = randomCGFloat()
        let g = randomCGFloat()
        let b = randomCGFloat()

        return UIColor(red: r, green: g, blue: b, alpha: 1.0)
    }
}


class ViewController: UIViewController {
    @IBOutlet var image1: UIImageView?
    @IBOutlet var image2: UIImageView?
    @IBOutlet var image3: UIImageView?
    @IBOutlet var image4: UIImageView?

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        let getColor = UIColor.randomColor()

        self.image1?.backgroundColor = getColor
        self.image2?.backgroundColor = getColor
        self.image3?.backgroundColor = getColor
        self.image4?.backgroundColor = getColor
    }

如果您需要所有图像都具有 1.0 的 alpha 且仅具有 0.7 的 alpha,我建议如下:

首先将所有图像放入 viewDidLoad() 的数组中,然后随机 select 一个元素并应用 0.7 的 alpha(其他默认 alpha 为 1.0)。

然后您可以向每个 imageView 添加一个点击识别器并检查调用的方法以查看 alpha 是否为 0.7

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    let getColor = UIColor.randomColor()

    self.image1?.backgroundColor = getColor
    self.image2?.backgroundColor = getColor
    self.image3?.backgroundColor = getColor
    self.image4?.backgroundColor = getColor

    var imageViewsArray: [UIImageView] = [image1, image2, image3, image4]

    var randomIndex = Int(arc4random()) % Int(imageViewsArray.count)
    imageViewsArray[randomIndex].alpha = 0.7

    for imageView in imageViewsArray {
        imageView.userInteractionEnabled = true

        let tapRecognizer = UITapGestureRecognizer(target: self, action:"imageTapped:")

        imageView.addGestureRecognizer(tapRecognizer)
    }
}

func imageTapped(gestureRecognizer: UITapGestureRecognizer) {
    let tappedImageView = gestureRecognizer.view!

    if tappedImageView.alpha == 0.7 {
        // Success
    }
}