快速照片显示计时器设置

时间:2016-02-24 16:54:50

标签: ios swift

我正在尝试将照片显示测验片添加到我正在创建的更大的应用中。到目前为止,设置的图片看起来像这样(粗略草案可以这么说) screen shot of set up so far

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

我可以做到这一点,但是想要添加代码以使瓷砖随机消失并大致每秒消失

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()
}

}

1 个答案:

答案 0 :(得分:0)

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

0.-您可能想要跟踪哪些图块已经面朝下。因此,通过这种方式,您可以随时了解已使用的索引,并始终选择新索引。

  

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

1.-确定0之间的一个/(一组)随机整数... [你的IBOutletCollection]。长度 - 1]

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

作为您的另一个问题,我的建议是将UIViewsUILabel内置或UIButtons一起使用。标签的分区有点难以使用。