随机 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
}
}
我正在开发一款应用程序,该应用程序将从四张图片开始,最终会在屏幕上添加更多图片,但现在我正在尝试弄清楚如何让该应用程序随机出现 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
}
}