将imageview添加到scrollview页面控件

时间:2018-07-19 19:05:17

标签: ios swift uiscrollview uiimageview uipagecontrol

下面的代码是使用页面控件的基本滚动视图,该控件在每个屏幕上使用基本颜色。我想在显示基本颜色的uiview上显示imageview。我想从Xcode中的资产文件中调用var pics。

var colors:[UIColor] = [UIColor.red, UIColor.blue, UIColor.green, UIColor.yellow]
var pics = ["a","b","c","d"]

override func viewDidLoad() {
    super.viewDidLoad()
    self.view.addSubview(scrollView)
    for index in 0..<4 {
        frame.origin.x = self.scrollView.frame.size.width * CGFloat(index)
        frame.size = self.scrollView.frame.size

        let subView = UIView(frame: frame)
        subView.backgroundColor = colors[index]
        self.scrollView .addSubview(subView)
    }

    func configurePageControl() {
        self.pageControl.numberOfPages = colors.count
    }

1 个答案:

答案 0 :(得分:0)

在这里,我假设您在项目中附加了4张名为0,1,2,3 png的图片,请尝试

import UIKit

class ViewController: UIViewController , UIScrollViewDelegate {

    let scrollView = UIScrollView()

    let pageCon = UIPageControl()

    override func viewDidLoad() {

        super.viewDidLoad()

        let viewsCount = 4

        var prevView = self.view!

        scrollView.delegate = self

        scrollView.isPagingEnabled = true

        pageCon.numberOfPages = viewsCount

        pageCon.currentPage = 0

        pageCon.tintColor = .green

        pageCon.currentPageIndicatorTintColor = .orange

        pageCon.backgroundColor = .blue

        pageCon.translatesAutoresizingMaskIntoConstraints = false

        scrollView.translatesAutoresizingMaskIntoConstraints = false

        view.addSubview(scrollView)

        view.insertSubview(pageCon, aboveSubview: scrollView)

        NSLayoutConstraint.activate([

            scrollView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
             scrollView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
             scrollView.topAnchor.constraint(equalTo: view.topAnchor, constant:20),
             scrollView.heightAnchor.constraint(equalToConstant: 400),
             pageCon.centerXAnchor.constraint(equalTo: view.centerXAnchor),
             pageCon.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor, constant:-20),

            ])

        for i in 0..<viewsCount {

            let imageV = UIImageView()
            imageV.image = UIImage(named: "\(i).png")
            imageV.translatesAutoresizingMaskIntoConstraints = false

            scrollView.addSubview(imageV)

            if prevView == self.view {

                imageV.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor).isActive = true
            }
            else {

                   imageV.leadingAnchor.constraint(equalTo: prevView.trailingAnchor).isActive = true
            }

            NSLayoutConstraint.activate([

                imageV.topAnchor.constraint(equalTo: scrollView.topAnchor),
                imageV.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor),
                imageV.widthAnchor.constraint(equalToConstant: self.view.frame.width),
                imageV.heightAnchor.constraint(equalToConstant: 400)
                ])

            if i == viewsCount - 1 {

                imageV.trailingAnchor.constraint(equalTo: scrollView.trailingAnchor).isActive = true
            }

            prevView = imageV


            }

    }


    func scrollViewDidScroll(_ scrollView: UIScrollView) {

        pageCon.currentPage = Int(scrollView.contentOffset.x / self.view.frame.width)

    }

}