Swift开发带前后切换按钮的图片查看器 按钮点击无响应求助
问题原因
- 点击按钮后仅修改了
numImage的数值,没有触发更新imgView显示内容的逻辑。你当前加载图片的代码只在viewDidLoad生命周期里执行了一次,后续数值变更不会自动同步到UI。 - 缺少计数边界校验,连续点击会导致
numImage超出你本地图片的序号范围,出现加载不到图片的异常。
修复方案
把加载更新图片的逻辑抽成公共方法,在按钮点击修改计数后调用,同时加上边界限制。假设你总共有N张图片,命名为1.jpeg、2.jpeg...N.jpeg,示例里以总共有10张图片为例,你可以根据自己的实际资源数量修改最大值。
修改后的完整代码如下:
import UIKit class ViewController: UIViewController { var presentImg: UIImage? // 记录当前展示的图片序号 var numImage = 1 // 总图片数量,根据你的实际资源数量修改 let totalImageCount = 10 var imgOn:UIImage? @IBOutlet var imgView: UIImageView! @IBAction func btnBack(_ sender: UIButton) { // 边界判断,最小序号为1 if numImage > 1 { numImage -= 1 } // 更新图片显示 updateCurrentImage() } @IBAction func btnForward(_ sender: UIButton) { // 边界判断,最大序号不超过总图片数 if numImage < totalImageCount { numImage += 1 } // 更新图片显示 updateCurrentImage() } override func viewDidLoad() { super.viewDidLoad() // 初始化加载第一张图片 updateCurrentImage() } // 公共的更新图片方法,避免重复编写逻辑 func updateCurrentImage() { let imageName = String(numImage) + ".jpeg" imgOn = UIImage(named: imageName) imgView.image = imgOn } }
内容的提问来源于stack exchange,提问作者myfan
相关产品推荐
相关产品推荐

