在Swift中使用UIScrollView制作图像滑块

时间:2016-08-08 17:48:08

标签: ios swift uiscrollview

我正在创建一个用户可以上传1到3张照片的应用。 我希望用户能够将其视为带有页面控件的滑块, 我开始对它进行编码,但由于某种原因,图像没有添加到scrollView(我在运行应用程序时看不到任何内容)。

到目前为止,这是我的代码:

    class dogProfileViewController: UIViewController {
    var imagesArray = [UIImageView()]
    @IBOutlet var scrollView: UIScrollView!
    override func viewDidLoad() {
        super.viewDidLoad()

        let image1: UIImageView = UIImageView(image: UIImage(named: "image1.png"))
        let image2: UIImageView = UIImageView(image: UIImage(named: "image2.png"))
        imagesArray.append(image1)
        imagesArray.append(image2)
        var countIndex = CGFloat(0)
        for image in imagesArray {
            image.frame = CGRectMake(countIndex*view.frame.width, 0, view.frame.width, 100)
            scrollView.addSubview(image)
            countIndex = countIndex + 1
        }

        // Do any additional setup after loading the view.
    }
}

3 个答案:

答案 0 :(得分:2)

在for循环结束后添加以下行

scrollView.contentSize = CGSizeMake(countIndex*view.frame.width,0)

我认为这会奏效。

答案 1 :(得分:1)

嗯,根据您提供的内容,您尚未将scrollView添加到视图中。因此,第一步,确保将scrollView添加到视图中。 self.view.addSubiew(scrollView)。更改scrollView背景以确保它在那里。

另外,我没有看到你初始化了scrollView框架。 scrollView没有框架,因此它不会显示在任何地方。确保初始化scrollView。

答案 2 :(得分:1)

@IBOutlet var mainScrollView: UIScrollView!

var imageArray = [UIImage]()

override func viewDidLoad() {
    super.viewDidLoad()

    mainScrollView.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: 175)

    imageArray = [#imageLiteral(resourceName: "cake"),#imageLiteral(resourceName: "food")]

    for i in 0..<imageArray.count{
        let imageView = UIImageView()
        imageView.image = imageArray[i]
        imageView.contentMode = .scaleToFill
        let xPosition = self.view.frame.width * CGFloat(i)
        imageView.frame = CGRect(x: xPosition, y: 0, width: self.mainScrollView.frame.width, height: self.mainScrollView.frame.height)

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