【发布时间】:2021-11-16 05:27:30
【问题描述】:
我有 3 张图片,我需要用动画来实现它们。我如何使用循环在屏幕上分别显示每个图像?请帮帮我
class ViewController: UIViewController {
var imageArray: [UIImage] = [UIImage(named: "1")!, UIImage(named: "2")!, UIImage(named: "3")!]
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(true)
Timer.scheduledTimer(timeInterval: 2, target: self, selector: #selector(handleTimer), userInfo: nil, repeats: false)
}
private func setImageSettings(to image: UIImage?) -> UIImageView {
let pictureParams = UIImageView(image: image)
pictureParams.frame.size = CGSize(width: 400, height: 300)
pictureParams.center = view.center
pictureParams.contentMode = .scaleAspectFit
view.addSubview(pictureParams)
return pictureParams
}
func moveImages(_ targetView: UIImageView) {
UIImageView.animate(withDuration: 2, delay: 0, options: [], animations: {targetView.frame.origin = CGPoint(x: targetView.frame.origin.x + 320, y: targetView.frame.origin.y )}, completion: nil)
}
func sortImages() {
for image in imageArray{
moveImages(setImageSettings(to: image))
}
}
@objc private func handleTimer(_ sender: Timer) {
sortImages()
}
}
【问题讨论】:
-
欢迎来到社区。你能更具体地说明你想要什么吗?是否有您想要的特定布局?或者只是为图像视图设置动画
-
@VisalRajapakse 谢谢!我需要一个带有指定计时器参数的图片滑块。 3张图片在屏幕上一张张翻转。目前我一次显示 3 张图片
-
看看您是否可以将以下线程用于您的用例stackoverflow.com/questions/39519102/ios-card-flip-animation/…
-
您的代码没有多大意义。您有一个名为
sortImages()的函数,它不会对任何内容进行排序 - 它一次循环遍历所有图像,为每个图像创建一个图像视图,并尝试为每个图像视图设置动画,即使这些图像视图从未添加到视图层次结构。我看不出你是如何看到屏幕上显示的任何图像的。 -
@DuncanC 如何让代码正常工作?
标签: arrays swift animation swift3 uiimage