专注动作的时间延迟

time delay on focus action

我有一个 Collection 视图并将其排列为在屏幕的一侧有一个单独的列,内容根据 collection 项进行替换是重点。

如果对某个项目的关注超过 0.5 秒,我希望能够换出内容。

这是我目前拥有的,它会立即换出数据。

if self.focused {
   self.label.alpha = 1
   self.priceLabel.alpha = 1
   if self.representedDataItem?.imageUrl! == "https://s3-us-west-2.amazonaws.com/random/image.png" ||
      self.representedDataItem?.imageUrl! == "" {
           self.backgroundImage.image = UIImage(named: "titleImage")
   }
   else {
      ImageCache.sharedLoader.imageForUrl((self.representedDataItem?.imageUrl!)!, completionHandler:{(image: UIImage?, url: String) in
           self.backgroundImage.image = image!
      })
   }
}
else {
   self.label.alpha = 0.2
   self.priceLabel.alpha = 0.2
}

不知道self.focused如何确定,假设你已经处理好了。因此,您可以使用 GCD 来延迟执行,同时集中注意力。

dispatch_after(dispatch_time(DISPATCH_TIME_NOW,  Int64(0.5 * Double(NSEC_PER_SEC))), dispatch_get_main_queue()) {
    // code to be executed after 0.5 sec
}
if self.focused {
   self.label.alpha = 1
   self.priceLabel.alpha = 1
}
else {
   self.label.alpha = 0.2
   self.priceLabel.alpha = 0.2
}
dispatch_after(dispatch_time(DISPATCH_TIME_NOW,  Int64(0.5 * Double(NSEC_PER_SEC))), dispatch_get_main_queue()) {
    // code to be executed after 0.5 sec
    if self.focused {
        if self.representedDataItem?.imageUrl! == "https://s3-us-west-2.amazonaws.com/random/image.png" ||
           self.representedDataItem?.imageUrl! == "" {
               self.backgroundImage.image = UIImage(named: "titleImage")
        }
        else {
            ImageCache.sharedLoader.imageForUrl((self.representedDataItem?.imageUrl!)!, completionHandler:{(image: UIImage?, url: String) in
                self.backgroundImage.image = image!
            })
        }
    }
}