私は長いUIViewを持つ標準グラデーションのトップボトムを作ろうとしています。しかし、それは完全ではありません。ペン先はUITableViewCellの一部なので、viewDidLayoutSubviews()
にはthis threadのようにアクセスできません。なぜUITableViewCellのグラデーションレイヤーがフレーム全体をカバーしていないのですか?
私は、このビューのコードバージョンからcontentView.layoutIfNeeded()
を呼び出すようにしようとしました。 UITableView cellForRowAtIndexPath
が呼び出されたときに呼び出されました。しかしそれは効果がありません。
awakeFromNib()
の勾配を作成します。
let colors = [
UIColor(red: 33/255.0, green: 33/255.0, blue: 33/255.0, alpha: 1.0).cgColor,
UIColor(red: 51/255.0, green: 51/255.0, blue: 51/255.0, alpha: 1.0).cgColor]
let gradient = CAGradientLayer()
gradient.frame = gradientView.bounds
gradient.colors = colors
gradientView.layer.insertSublayer(gradient, at: 0)
私のコードに何か問題がありますか?
よろしくお願いいたします。+1 –
ごめんなさい。実際には、グラデーションビューから 'bounds'を使用しています。とにかくあなたの解決策を試してみましょう。 –
私は、レイヤーが別のビューに属しているのを見ただけです。私はコードを変更しましたが、レイヤーを含むビュー( 'gradientView')がレイヤーのレイアウトを管理する方が良いと思います。 – clemens