2017-07-18 6 views
1

Je souhaite ajouter une collectionAvec la cellule de mon CustomCollectionViewController, avec un espace constant en position de début et de fin, j'ai essayé le type Anchor et le format Virtual Format, mais il semble que l'ancre pas travailler comme je veux. l'espace de fin est manquant.L'ancrage ne fonctionne pas en mode Collection Mise en page des cellules

voici mon code:

class CategoryCell: UICollectionViewCell, UICollectionViewDelegateFlowLayout { 
    override init(frame: CGRect) { 
     super.init(frame: frame) 

     setupViews() 
    } 

    required init?(coder aDecoder: NSCoder) { 
     fatalError("init(coder:) has not been implemented") 
    } 

    let appView:UICollectionView = { 
     let layout = UICollectionViewFlowLayout() 
     let view = UICollectionView(frame: .zero, collectionViewLayout: layout) 
     view.translatesAutoresizingMaskIntoConstraints = false 
     view.backgroundColor = UIColor.blue 
     return view 
    }() 

    func setupViews() { 
     contentView.addSubview(appView) 
     let layoutGuide = contentView.layoutMarginsGuide 

     appView.leadingAnchor.constraint(equalTo: layoutGuide.leadingAnchor, constant: 8).isActive = true 
     appView.trailingAnchor.constraint(equalTo: layoutGuide.trailingAnchor, constant: 8).isActive = true 
     appView.topAnchor.constraint(equalTo: layoutGuide.topAnchor).isActive = true 
     appView.bottomAnchor.constraint(equalTo: layoutGuide.bottomAnchor).isActive = true 

//  addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-8-[v0]-8-|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": appView])) 
//  addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|[v0]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": appView])) 
    } 

} 

layout with Anchor

mais si vous utilisez le style ancien format virtuel, il fonctionne très bien, il me fait confus

layout with virtual format string

Répondre

1

Valeur constante de trailingAnchor.constraint doit être de -8 au lieu de 8.

appView.trailingAnchor.constraint(equalTo: layoutGuide.trailingAnchor, constant: -8).isActive = true 
+0

oui, simple et stupide, vous m'aidez beaucoup, merci :) – vg0x00

+0

vous êtes les bienvenus :) – Nemanja