繁体   English   中英

在给定索引处删除数组外的图像

[英]Delete image out of array at given index

我创建并初始化了从图像数组中提取的滚动视图。 因此,用户先滑动一张照片,然后再滑动另一张照片,然后我需要根据当前图像的位置删除该图像,我创建了一个for循环,该循环删除了图像i-在数组中,但这会崩溃,因为我可以t删除i。 有没有办法可以做到这一点? 谢谢:这是我的代码

class ViewController: UIViewController {
var imageArray = [UIImage]()

@IBOutlet weak var mainScrollView: UIScrollView!

  func scrollViewDidScroll(_ scrollView: UIScrollView) {
        for i in 0..<imageArray.count {
            if i >= 3 {
                imageArray.remove(at: i - 2)
            }
    }
}


override func viewDidLoad() {
super.viewDidLoad()
mainScrollView.frame = view.frame
imageArray = [#imageLiteral(resourceName: "dubai6"), #imageLiteral(resourceName: "dubai2"), #imageLiteral(resourceName: "dubai7"), #imageLiteral(resourceName: "dubai4"), #imageLiteral(resourceName: "dubai3"), #imageLiteral(resourceName: "dubai5"), #imageLiteral(resourceName: "DigitalDrawingPreview"), #imageLiteral(resourceName: "denarus"), #imageLiteral(resourceName: "dubai1")]
for i in 0..<imageArray.count  {
    let imageView = UIImageView()
    imageView.contentMode = .scaleAspectFit
    imageView.image = imageArray[i]
    let xPosition = self.view.frame.width * CGFloat(i)
    imageView.frame = CGRect(x: xPosition, y: 0, width: self.view.frame.width, height: self.mainScrollView.frame.height)

    mainScrollView.contentSize.width = mainScrollView.frame.width * CGFloat(i + 1)
    mainScrollView.addSubview(imageView)
}

我建议不要使用UITableView或UICollectionView,而不要使用UIScrollView。 管理数据模型然后调用table.reloadData()非常容易。

您将使用ScrollViewDelegate方法scrollViewDidScroll(_ scrollView)来跟踪滚动位置,并在滚动足够远后强制重新加载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM