快速滚动视图分页仅显示数组中的最后一个图像

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

我已经设置了启用分页的滚动视图。滚动视图内部是一个 UIImageView (tutorialImageView),它链接到故事板上的图像视图。

我有一组图像,我想在滚动视图中将其显示为页面。

一切似乎都工作正常(分页正确),但只显示从数组加载的最后一个图像。因此第1,2,3页都是空白,然后slide4.png按其应有的方式显示在第4页上。

    import Foundation
import UIKit

class TutorialViewController: UIViewController {

    @IBOutlet weak var back: UIButton?
    @IBOutlet weak var scrollView: UIScrollView!
    @IBOutlet weak var tutorialImageView: UIImageView?

    var slides:[UIImage] = [UIImage(named: "slide1.png")!, UIImage(named: "slide2.png")!, UIImage(named: "slide3.png")!, UIImage(named: "slide4.png")!]
    var frame: CGRect = CGRectMake(0, 0, 0, 0)
    
    override func viewDidLoad() {
        super.viewDidLoad()
    
        for index in 0..<slides.count {
            
            frame.origin.x = self.scrollView!.frame.size.width * CGFloat(index)
            frame.size = self.scrollView!.frame.size
            self.scrollView!.pagingEnabled = true
            
            var subView = UIView(frame: frame)
            
            tutorialImageView!.image = slides[index]
            subView.addSubview(tutorialImageView!)
            self.scrollView!.addSubview(subView)
        }
        
        self.scrollView!.contentSize = CGSizeMake(self.scrollView!.frame.size.width * CGFloat(slides.count), self.scrollView!.frame.size.height)

    }

我正在努力寻找自己错过的东西。

swift xcode pagination scrollview
1个回答
4
投票

试试这个,只需从代码中删除一些内容就可以了。

全局变量:

var imageWidth: CGFloat = 310
var imageHeight: CGFloat = 400
var xPosition: CGFloat = 0
var scrollViewContentSize: CGFloat = 0    
var myImage: UIImage = //array of UIImage

创建进入滚动视图的 UIImageViews。

for var index = 0; index < myImages.count; index++ {

        var myImage: UIImage = myImages[index]!

        var myImageView: UIImageView = UIImageView()
        myImageView.image = myImage

        myImageView.frame.size.width = imageWidth
        myImageView.frame.size.height = imageHeight
        myImageView.frame.origin.x = xPosition
        myImageView.frame.origin.y = 0

        imageScrollView.addSubview(myImageView)

        xPosition += imageWidth
        scrollViewContentSize += imageWidth

        imageScrollView.contentSize = CGSize(width: scrollViewContentSize, height: imageHeight)

    }
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.