2016-09-13 17 views
0

scrollViewの内部にcollectionViewを持つView Controllerを作成しようとしています。私はscrollView、次にcollectionViewを追加し、次に別のコンテンツのコンテナビューを追加しますが、何とか画面が空です。scrollControllerのViewControllerに空の画面が表示される

コードは、私が間違って何をやっている

import UIKit 

class BrowseProfileViewController:BaseViewController, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout { 

var photosArray:[UIImage]? 
var cellId = "CellId" 

var scrollView:UIScrollView = { 
    var scrollView = UIScrollView() 
    scrollView.translatesAutoresizingMaskIntoConstraints = false 
    return scrollView 
}() 

lazy var photoGalleryCollectionView:UICollectionView = { 
    var layout = UICollectionViewFlowLayout() 
    layout.scrollDirection = .Horizontal 
    layout.itemSize = CGSize(width: self.view.frame.width, height: self.view.frame.width) 
    layout.sectionInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0) 
    layout.minimumLineSpacing = 0 
    layout.minimumLineSpacing = 0 
    var collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout) 
    collectionView.delegate = self 
    collectionView.dataSource = self 
    collectionView.translatesAutoresizingMaskIntoConstraints = false 
    collectionView.pagingEnabled = true 
    return collectionView 
}() 


var containerView:UIView = { 
    var view = UIView() 
    view.translatesAutoresizingMaskIntoConstraints = false 
    return view 
}() 

override func viewDidLoad() { 
    super.viewDidLoad() 
    navigationController?.setNavigationBarHidden(true, animated: false) 

    photoGalleryCollectionView.registerClass(AlbumsCell.self, forCellWithReuseIdentifier: cellId) 

    photosArray = [UIImage(named:"q")!, UIImage(named:"qq")!, UIImage(named:"qqq")!] 

    view.addSubview(scrollView) 
    scrollView.trailingAnchor.constraintEqualToAnchor(view.trailingAnchor).active = true 
    scrollView.leadingAnchor.constraintEqualToAnchor(view.leadingAnchor).active = true 
    scrollView.topAnchor.constraintEqualToAnchor(view.topAnchor).active = true 
    scrollView.leadingAnchor.constraintEqualToAnchor(view.leadingAnchor).active = true 

    scrollView.addSubview(photoGalleryCollectionView) 
    photoGalleryCollectionView.leadingAnchor.constraintEqualToAnchor(view.leadingAnchor).active = true 
    photoGalleryCollectionView.trailingAnchor.constraintEqualToAnchor(view.trailingAnchor).active = true 
    photoGalleryCollectionView.topAnchor.constraintEqualToAnchor(scrollView.topAnchor).active = true 
    photoGalleryCollectionView.heightAnchor.constraintEqualToConstant(self.view.frame.width).active = true 

    scrollView.addSubview(containerView) 
    containerView.leadingAnchor.constraintEqualToAnchor(view.leadingAnchor).active = true 
    containerView.trailingAnchor.constraintEqualToAnchor(view.trailingAnchor).active = true 
    containerView.topAnchor.constraintEqualToAnchor(photoGalleryCollectionView.bottomAnchor).active = true 
    containerView.bottomAnchor.constraintEqualToAnchor(scrollView.bottomAnchor).active = true 

} 

func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
    return photosArray!.count 
} 

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
    let cell = collectionView.dequeueReusableCellWithReuseIdentifier(cellId, forIndexPath: indexPath) as! AlbumsCell 
    cell.imageView.image = photosArray![indexPath.item] 
    return cell 

} 

}

に従っていますか?

答えて

0

コードをテストせずにscrollViewcontentSizeを確認してください。おそらくCGSizeZeroです。 UIScrollViewハグそれは可能な限り内容が豊富で、そのサブビューのどれもexplicit sizeを持たないので、CGSizeZeroに契約します。

NSLayoutConstraintUIScrollViewを使用する方法については、ScrollViewsにApples Documentationを参照してください、そしてこのBlogPostによる原子オブジェクト

関連する問題