0
別のコントローラでサブビューとしてUICollectionView
を追加しました。私はそれのフレームを設定し、UICollectionView
フローは水平です。私はアイテムの1行だけを表示し、水平方向にスクロールする必要があります。しかし、私は垂直にいくつかの行を取得します。私はいくつかの異なる方法を試しましたが、それは私を助けません。私はそれについての情報を検索しましたが、これらの方法も私を助けません。どうすれば修正できますか?UICollectionViewの動作がサブビューとして正しくありません
マイコード
override func viewDidLoad() {
super.viewDidLoad()
addUIElements()
}
// MARK: - UI functions
private func addUIElements() {
view.addSubview(headerView)
let lifelineController = StoryboardManager.lifeLineStoryboard.instantiateViewControllerWithIdentifier("LifeLineCollectionViewController") as! LifeLineCollectionViewController
addChildViewController(lifelineController)
lifelineController.view.frame = CGRect(x: 0, y: headerView.frame.height, width: headerView.frame.width, height: 100)
view.addSubview(lifelineController.view)
lifelineController.didMoveToParentViewController(self)
}
レイアウトコード
extension LifeLineCollectionViewController: UICollectionViewDelegateFlowLayout {
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
let value = 50
return CGSize(width: value, height: value)
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAtIndex section: Int) -> CGFloat {
return 8
}
// func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
// return CGSize(width: collectionView.frame.width, height: 376)
// }
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets {
let top: CGFloat = 48
let cornerValue: CGFloat = 8
let bottom: CGFloat = 40
return UIEdgeInsets(top: top, left: cornerValue, bottom: bottom, right: cornerValue)
}
}
IがviewDidAppearでUICollectionViewにそのフレームを印刷し、私は完全に異なる結果508の高さを得るが、私136を高さに設定する。
の助けを借りて、それを解決しましたか – Wain
@Wainはレイアウトコードで賭けてください – Alexander