我正在我的应用程序中显示照片,并且正在UIImage
为此使用。到目前为止,这就是我这样做的方式:
func getDataFromUrl(url:NSURL, completion: ((data: NSData?, response: NSURLResponse?, error: NSError? ) -> Void)) {
NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) in
completion(data: data, response: response, error: error)
}.resume()
}
func downloadImage(url: NSURL){
getDataFromUrl(url) { (data, response, error) in
dispatch_async(dispatch_get_main_queue()) { () -> Void in
guard let data = data where error == nil else { return }
print("Download Finished")
self.requestPhoto.image = UIImage(data: data)
}
}
}
然后在viewDidLoad()
做:
if let checkedUrl = NSURL(string: photo) {
requestPhoto.contentMode = .ScaleAspectFit
downloadImage(checkedUrl)
}
这使UIImage充满了我的照片,但是它不可单击,并且是原始组件的大小。有没有一种方法可以添加某种侦听器,或者在用户点击UIImage组件时以全屏显示照片的方式?
您需要UITapGestureRecognizer
在requestPhoto
图像视图中添加一个。像这样的东西:
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: Selector("tapHandler"))
self.requestPhoto.addGestureRecognizer(tapGestureRecognizer)
self.requestPhoto.userInteractionEnabled = true
最后一行是必需的,因为UIImageView
默认情况下已将其关闭,因此触摸会被取消。
然后在同一个班级:
func tapHandler(sender: UITapGestureRecognizer) {
if sender.state == .Ended {
// change the size of the image view so that it fills the whole screen
}
}
标记还可以说明整个视图,即视图是否处于全屏状态,从而使整个过程受益,因此,当用户点击全屏图像时,您可以撤消该过程。
与往常一样,您可以在docs中阅读更多内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句