我希望當我的表格視圖單元格內的圖像按照uigesturerecognizer的提示進行完全屏蔽時。在桌面單元內全屏顯示一個圖像Swift
問題是我的didSelectRowAt函數不能識別postedimage
標識符。
使用未解決的標識符 'postedImage'
如何解決此問題得到什麼?
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! FeedTableViewCell
imageFiles[indexPath.row].getDataInBackground { (data, error) in
if let imageData = data {
if let downloadedImage = UIImage(data: imageData) {
cell.postedImage.image = downloadedImage
}
}
}
cell.postedImage.image = UIImage(named: "test.png")
return cell
}
func removeImage() {
let imageView = (self.view.viewWithTag(100)! as! UIImageView)
imageView.removeFromSuperview()
}
func addImageViewWithImage(image: UIImage) {
let imageView = UIImageView(frame: self.view.frame)
imageView.contentMode = .scaleAspectFit
imageView.backgroundColor = UIColor.black
imageView.image! = image
imageView.tag = 100
let dismissTap = UITapGestureRecognizer(target: self, action: #selector(self.removeImage))
dismissTap.numberOfTapsRequired = 1
imageView.addGestureRecognizer(dismissTap)
self.view.addSubview(imageView)
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.addImageViewWithImage(image: postedImage[indexPath.row])
}
份額更多的信息,如果這沒有幫助。 –
這允許我打開圖像,但是當我再次點擊以關閉圖像時,會轉到數組中的下一個圖像。 另外我忘了提及'imageView.image! = image'應該是'imageView.image = image'。 –
@JackRichards這是因爲攻擊你的didselect方法而再次觸發,因爲它優先於輕擊手勢。你將不得不添加一個不同的邏輯,基本上檢查圖像是否打開,如果是,然後關閉圖像或任何你想做的事情。也許使用一些標誌。 –