我正在尝试将照片展示测验片段添加到我正在创建的更大的应用程序中。到目前为止的设置图片看起来像这样(可以说是草稿)


带有16个标签的项目只是为了给最终产品一种感觉(它们在应用程序中将是白色瓷砖)。我该如何编程,以便当用户点击显示图片时它们开始消失? NSTimer?它们应该是标签还是UIView或??感谢您的任何提示。

我可以走得很远,但是想要添加代码以使磁贴随机且大致每秒消失

import UIKit

class ViewController: UIViewController {

var gameTimer : NSTimer!
@IBOutlet weak var imageView: UIImageView!


@IBOutlet weak var tile15: UILabel!
@IBOutlet weak var tile16: UIView!

@IBOutlet var photoTilesHandler: [UIView]!
//@IBOutlet weak var viewTile: UIView!
//@IBOutlet var pictureTiles: [UILabel]!
@IBOutlet var buttonHandler: [UIButton]!


override func viewDidLoad() {
    super.viewDidLoad()

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

@IBAction func revealButton(sender: AnyObject) {
    Hide()
    print("button pressed")

}


func Hide() {
        var dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(1 * Double(NSEC_PER_SEC)))
        dispatch_after(dispatchTime, dispatch_get_main_queue(), {
            self.tile15.hidden = true
        })
    }


override func viewDidDisappear(animated: Bool) {
    gameTimer.invalidate()
}

}

最佳答案

将所有UILabels / UIViews / etc放在IBOutletCollection中。然后在dispatch_after的回调中执行以下步骤:

0.-您可能想跟踪哪些瓷砖已经朝下。这样一来,您可以随时知道已经使用了哪个索引,并始终选择新的索引。


  实现此目的的一种方法是存储可供选择的完整索引列表,而不是将您的IBOutletCollection考虑在内,以下步骤将未使用的索引列表作为参考,并在您随机选择一个索引之后,将其从列表中删除。


1.-确定介于0 ... [your IBOutletCollection .length-1]之间的一个/(一组)随机整数

2.-使用此数字作为索引,将[您的hidden]对应元素的IBOutletCollection属性设置为true

作为您的另一个问题,我的建议是将UIViews与您的UILabel放在UIButtons内。标签的分接区域有点难以使用。

关于ios - 快速照片显示计时器设置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35608284/

10-10 13:36