ScrollView swift 3

时间:2016-10-04 11:02:58

标签: ios swift xcode uiscrollview

我试图在scrollView中将我的图像垂直对齐。不幸的是,我无法弄清问题是什么。我认为这是数学上的东西,这不是我最强的东西。 :(

我希望有人可以帮我解决这个问题。我还将提供下面问题的代码和图像:

//
//  muscleListVC.swift
//  ActiveRest
//
//  Created by Fhict on 04/10/16.
//  Copyright © 2016 Kevin Vugts. All rights reserved.
//

import UIKit

class muscleListVC: UIViewController {

    var images = [UIImageView]()

    @IBOutlet weak var scrollView: UIScrollView!

    override func viewDidLoad() {
        super.viewDidLoad()



        print("Count: \(images.count)")

    }

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)

        var contentHeight: CGFloat = 0.0
        let scrollHeight = scrollView.frame.size.height

        for x in 0...4 {

            let image = UIImage(named: "muscle\(x).png")
            let imageView = UIImageView(image: image)
            images.append(imageView)

            var newX: CGFloat = 0.0
            newX = scrollHeight / 4 + scrollHeight * CGFloat(x) / 4
            print("the size is \(newX)")
            contentHeight += newX

            scrollView.addSubview(imageView)
            imageView.frame = CGRect(x: 0, y: newX, width: view.frame.size.width, height: 166)

            print("the content height: \(contentHeight)")
            scrollView.contentSize = CGSize(width: scrollView.frame.size.width, height: contentHeight)

        }
        scrollView.clipsToBounds = false
    }
}

enter image description here

非常感谢! < 3

1 个答案:

答案 0 :(得分:0)

我不太确定你打算做什么,但我试图修改你的代码以使其工作。

override func viewDidLoad() {

        super.viewDidLoad()

        let numberOfImages = 5
        let imageViewHeight:CGFloat = 166.0
        scrollView.contentSize = CGSize(width: view.frame.size.width, height: imageViewHeight*(CGFloat)(numberOfImages))

        var newY:CGFloat = 0

        for x in 0...(numberOfImages-1) {

            let image = UIImage(named: "muscle\(x).png")
            let imageView = UIImageView(image: image)
            images.append(imageView)
            imageView.frame = CGRect(x: 0, y: newY, width: view.frame.size.width, height: imageViewHeight)
            newY = newY + CGFloat(imageViewHeight)
            scrollView.addSubview(imageView)

        }


    }