我有一个UIScrollView,它显示许多图像(here)。我正在尝试删除(例如)第三张幻灯片,但是当我尝试使用此代码删除该幻灯片时
if let viewWithTag = self.view.viewWithTag(2) {
viewWithTag.removeFromSuperview()
}
它似乎可以正常工作,因为我无法再滚动到该幻灯片,但是只要我尝试滚动到该幻灯片(here),我仍然可以在底部看到它:正如您在视频中看到的最后一张图片一样尝试滚动到它只是回弹。
我正在尝试从视图中完全删除该幻灯片,而不是将其隐藏:)。任何帮助请帮助吨。
基本上,我删除任何幻灯片后都只是尝试重新加载/更新视图。
for i in 0..<2 {
front = UIImageView()
if let url = URL.init(string: frontImageDisplay[i]) {
front.downloadedFrom(url: url)
}
front.contentMode = .scaleToFill
let yPosition = self.view.frame.height * CGFloat(i) + self.view.frame.height/2 - (self.view.frame.height / 1.1)/2
let xPosition = self.view.frame.width/2 - (self.view.frame.width / 1.1)/2
front.frame = CGRect(x: xPosition, y: yPosition, width: self.view.frame.width / 1.1, height: self.view.frame.height / 1.1)
front.layer.borderWidth = 5
back = UIImageView()
if let url = URL.init(string: frontImageDisplay[i]) {
back.downloadedFrom(url: url)
}
back.contentMode = .scaleToFill
back.frame = CGRect(x: xPosition, y: yPosition, width: self.view.frame.width / 1.1, height: self.view.frame.height / 1.1)
back.layer.borderWidth = 5
mainScrollView.contentSize.height = mainScrollView.frame.height * CGFloat(i + 1)
imageOne.tag = i
imageTwo.tag = i
imageOne.addSubview(front)
imageTwo.addSubview(back)
}
最佳答案
以下代码行似乎是错误的:
imageOne.tag = i
imageTwo.tag = i
首选方法:
使用
UIPageViewController
-在使用前请先阅读它,并查看它是否符合您的需求。首选使用自动布局,因为它可以适应不同的屏幕和方向,并且您不必进行框架计算
不要使用标签来识别视图。而是保留源图像的模型(数组)并对其进行遍历。