我有一个滚动视图,其中嵌入了图像视图。用户单击“拍摄照片”按钮,拍摄照片,然后将这些照片存储在阵列中,然后显示在可滚动的imageView上。我的问题是,在调用didFinishSelectingMedia并关闭相机后,imageView始终显示数组中的第一张图像。我希望imageView显示添加到数组中的最新图像,并向后滚动这些图像,直到用户进入数组中的第一张图像为止。我如何做到这一点?
顺便说一句:如果这甚至是合理的,那么就Idk,但是我试图反转for循环,但是那没有用。
我是新程序员,所以请解释您的答案。
这是我的代码:
import UIKit
class ViewController: UIViewController, UINavigationControllerDelegate, UIImagePickerControllerDelegate {
@IBOutlet weak var scrollImageView: UIScrollView!
var imageTaken: [UIImage] = []
var imagePicker = UIImagePickerController()
override func viewDidLoad() {
super.viewDidLoad()
scrollImageView.frame = scrollImageView.frame
}
@IBAction func takePhotoButton(_ sender: Any) {
imagePicker = UIImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = .camera
present(imagePicker, animated: true, completion: nil)
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
imageTaken.append((info[.originalImage] as? UIImage)!)
imagePicker.dismiss(animated: true, completion: nil)
for i in 0..<imageTaken.count {
let imageView = UIImageView()
imageView.image = imageTaken[i]
imageView.contentMode = .scaleAspectFit
let xPosition = self.scrollImageView.frame.width * CGFloat(i)
imageView.frame = CGRect(x: xPosition, y: 0, width: self.scrollImageView.frame.width, height: self.scrollImageView.frame.height)
scrollImageView.contentSize.width = scrollImageView.frame.width * CGFloat(i + 1)
scrollImageView.addSubview(imageView)
}
}
}
我想您可以采取两种选择似乎更容易。