2016-10-21 9 views
-1

私は非常に基本的なUICollectionViewを持っています。私のCollectionViewCellの中には、単なる画像である「thumbnailImage」があります。私はグラデーションレイヤーを黒色からクリアカラーにフェードインしたいと思いますが、このCAGradientの下にはなく、UILabel ON ONがあります。ラベルは "MovieTitle"です。私はプログラム的に制約を含めてすべてをやっています。これをどのように実行するのですか?ここに私のコードは、そのラベルが内側に勾配を持つビューの上に表示されますので、ご意見の順序を変更してみグラデーションの上にラベルを追加するにはどうすればよいですか?

let myView: UIView = { 
    let view = UIView() 
    return view 
}() 

let gradientView: CAGradientLayer = { 
    let grad = CAGradientLayer() 
    grad.colors = [UIColor.white.cgColor, UIColor.red.cgColor] 
    grad.locations = [0.7, 1.2] 
    return grad 
}() 

func setupViews() { 
    thumbnailImageView.addSubview(movieTitle) 
    addSubview(thumbnailImageView) 
    thumbnailImageView.addSubview(dividerLine) 
    thumbnailImageView.addSubview(myView) 
    myView.layer.addSublayer(gradientView) 

    addConstrainsWithFormat(format: "H:|[v0]|", views: thumbnailImageView) 
    addConstrainsWithFormat(format: "V:|[v0]|", views: thumbnailImageView) 

    thumbnailImageView.addConstrainsWithFormat(format: "H:|[v0]|", views: myView) 
    thumbnailImageView.addConstrainsWithFormat(format: "V:|[v0]|", views: myView) 

    thumbnailImageView.addConstrainsWithFormat(format: "H:|[v0]|", views: dividerLine) 
    thumbnailImageView.addConstrainsWithFormat(format: "V:[v0(0.75)]|", views: dividerLine) 

    thumbnailImageView.addConstrainsWithFormat(format: "H:|-16-[v0]-16-|", views: movieTitle) 
    thumbnailImageView.addConstrainsWithFormat(format: "V:[v0(25)]-8-|", views: movieTitle) 
} 

答えて

0

です:

myView.layer.addSublayer(gradientView) 
thumbnailImageView.addSubview(myView) 
thumbnailImageView.addSubview(movieTitle) 
thumbnailImageView.addSubview(dividerLine) 
addSubview(thumbnailImageView) 

あなたはまた、既存の層の下または上の層とビューを挿入することができます/階層内のビュー:

view.insertSubview(subview, at: 0) 
view.insertSubview(subview, belowSubview: existingView) 
view.insertSubview(subview, aboveSubview: existingView) 

layer.insertSublayer(gradientLayer, at: 0) 
layer.insertSublayer(gradientLayer, below: anotherLayer) 
layer.insertSublayer(gradientLayer, above: anotherLayer) 
関連する問題