カスタムのUIControl
があり、シャドウを付けたいので、そのlayer
に関連するプロパティを設定します。必要に応じてビューの周囲に影が表示されますが、サブビューであるUILabel
のテキストの下にも影が表示されます。どうやってこれを止めますか?外側のスーパービューの周りの影だけが欲しいです。
...
init() {
label = UILabel()
label.translatesAutoresizingMaskIntoConstraints = false
self.translatesAutoresizingMaskIntoConstraints = false
addSubview(label)
self.layer.masksToBounds = false
self.layer.shadowColor = UIColor.blackColor().CGColor
self.layer.shadowOpacity = 1.0
self.layer.shadowRadius = 2.0
// Adding these lines trying to explicitly stop shadow on label...
label.layer.shadowOpacity = 0
label.layer.shadowColor = nil
...
}
サブビューの親を変更するだけで簡単です。
つまり、透明なシャドウビューの上に新しい親を作成し、この新しい親ビューにサブビューを挿入します。