ScrollView内的ImageView显示错误图片

问题描述 投票:0回答:1

我有一个滚动视图,其中嵌入了图像视图。用户单击“拍摄照片”按钮,拍摄照片,然后将这些照片存储在阵列中,然后显示在可滚动的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)

        }


    }

}
arrays swift imageview uiimage scrollview
1个回答
0
投票

我想您可以采取两种选择似乎更容易。

  1. OOP-创建对象数组示例:
© www.soinside.com 2019 - 2024. All rights reserved.