gpt4 book ai didi

swift - stopAnimating 删除当前图像

转载 作者:行者123 更新时间:2023-11-30 10:48:41 27 4
gpt4 key购买 nike

一位已退休的年长 DEC PDP 8 汇编程序员需要另一双眼睛。我创建了一个 Hello World 程序来显示家庭的图像。动画效果很好,但我希望用户能够停止动画,因此我添加了一个按钮来“暂停”图像,以便用户可以在闲暇时查看它。但是,.stopAnimation 函数会清除 View 。如何防止这种情况发生。请善待。

import UIKit

class FamilyUnitController: UIViewController {
@IBOutlet weak var familyMember: UILabel!
@IBOutlet weak var familyPhotos: UIImageView!
var familyName: String = ""
var familyUnitArray = [String]()

@IBOutlet weak var pauseButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
enter code here
configureImageView()
}

@IBAction func pauseImage(_ sender: UIButton) {
if familyPhotos.isAnimating {
familyPhotos.stopAnimating()
pauseButton.setTitle("Paused", for: [])
} else {
familyPhotos.startAnimating()
pauseButton.setTitle("Pause", for: [])
}
}

func configureImageView() {

familyMember.text = familyUnitArray[0]
familyMember.sizeToFit()
let imagePrefix = familyUnitArray[1]
print ("configureImageView called...")
let maxImageCnt = 10
if let imageView = familyPhotos {
print ("Processing images...")
let fileManager = FileManager.default
let path = Bundle.main.resourcePath!
print (#function,">Path> ",path)
let enumerator:FileManager.DirectoryEnumerator = fileManager.enumerator(atPath: path)!
var imageArr = [UIImage]()
var imageCnt: Int = 0
while let element = enumerator.nextObject() as? String {
print (#function,"> element.description",element.debugDescription)
let tmpStr = element.lowercased()
let tmpImagePrefix = imagePrefix.lowercased()
if (element.hasSuffix("png") || element.hasSuffix("jpg") || element.hasSuffix("jpeg"))
&& tmpStr.hasPrefix(tmpImagePrefix)
&& imageCnt < maxImageCnt {
let elementWithPath = path+"/"+element
imageArr.append(UIImage(contentsOfFile: elementWithPath)!)
imageCnt += 1
}
}
imageView.isUserInteractionEnabled = true
imageView.animationImages = imageArr
imageView.contentMode = .scaleAspectFit
imageView.backgroundColor = UIColor.white
imageView.animationDuration = 15
imageView.startAnimating()
}
}
}

最佳答案

您可以引用此处暂停动画/不停止动画。

Is there a way to pause a CABasicAnimation?

就您的情况而言,代码应如下所示,您可能需要进行一些更改才能使其完美。

@IBAction func pauseImage(_ sender: UIButton) {
if familyPhotos.layer.speed != 0 {

let time = familyPhotos.layer.convertTime(CACurrentMediaTime(), to: nil)

familyPhotos.layer.speed = 0
familyPhotos.layer.timeOffset = time
pauseButton.setTitle("Paused", for: [])
} else {

familyPhotos.layer.beginTime = familyPhotos.layer.timeOffset - CACurrentMediaTime()
familyPhotos.layer.timeOffset = 0
familyPhotos.layer.speed = 1
pauseButton.setTitle("Pause", for: [])
}
}

关于swift - stopAnimating 删除当前图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55151379/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com