Swift Playground单视图中实现点击image.png后消失的方法
实现点击图片消失的Swift Playground方案
嘿,作为Swift新手能在Playground里动手实验超棒的!我来给你一步步讲清楚怎么实现点击image.png后让它消失的功能,保证你能看懂~
核心要点先提一下
首先要注意:UIImageView默认是关闭用户交互的,所以第一步必须开启它,否则点击事件根本不会响应,这是很多新手容易踩的坑哦!
完整代码实现
直接把下面的代码复制到你的Playground单视图页面里,就能看到效果啦:
import UIKit import PlaygroundSupport class MyViewController : UIViewController { override func viewDidLoad() { super.viewDidLoad() // 设置背景色,方便看清楚图片位置 view.backgroundColor = .white // 1. 创建并配置ImageView let imageView = UIImageView(image: UIImage(named: "image.png")) // 手动设置图片的位置和大小,你可以根据需要调整数值 imageView.frame = CGRect(x: 50, y: 50, width: 100, height: 100) // 关键!开启用户交互,否则点击无效 imageView.isUserInteractionEnabled = true // 把图片添加到视图里 view.addSubview(imageView) // 2. 添加点击手势识别器 let tapGesture = UITapGestureRecognizer(target: self, action: #selector(tapImageView(_:))) imageView.addGestureRecognizer(tapGesture) } // 3. 处理点击事件的方法 @objc func tapImageView(_ sender: UITapGestureRecognizer) { // 获取被点击的ImageView if let tappedImageView = sender.view as? UIImageView { // 方式1:隐藏图片(之后还可以通过设置isHidden = false恢复显示) tappedImageView.isHidden = true // 如果你想彻底把图片从界面移除,就用下面这行代替上面的: // tappedImageView.removeFromSuperview() } } } // 让Playground显示我们的视图 PlaygroundPage.current.liveView = MyViewController()
代码逐行解释
- 开启用户交互:
imageView.isUserInteractionEnabled = true,没有这一步,所有点击操作都会被忽略。 - 手势识别器:
UITapGestureRecognizer是用来检测点击事件的,我们指定它触发tapImageView(_:)方法。 - @objc修饰符:因为手势识别器的action需要兼容Objective-C的方法,所以必须给处理方法加上
@objc。 - 两种消失方式:
isHidden = true:只是把图片隐藏起来,它还在视图层级里,之后可以随时恢复显示。removeFromSuperview():把图片从视图中彻底移除,无法再直接恢复,适合不需要再用到这个图片的场景。
内容的提问来源于stack exchange,提问作者Nadia
相关产品推荐
相关产品推荐

