UIView
のサブクラスであるカスタムビューがあります。カスタムビューにいくつかのサブレイヤーを追加しましたが、それらを削除する必要があります。
私はこれを試しました:
self.layer.sublayers = nil;
ただし、これにより、ビューの初期サブレイヤーを含むすべてが削除されます。
これを達成する方法はありますか?または、毎回新しいカスタムビューを再初期化する必要がありますか?
注:アプリはiOS 7以降で実行されます。
ありがとう!
追加されたサブレイヤーへの参照を保持する必要がない場合は、スーパーレイヤーからサブレイヤーを削除します。
コードは次のようになります。
Obj C:
[thesublayer removeFromSuperlayer]
迅速:
thesublayer.removeFromSuperlayer()
//thesublayer is the name of the layer you want to remove
スーパーレイヤーから特定のレイヤーを削除する別の方法は、layer.name
プロパティ。後で比較して識別し、削除できます。
for layer in sublayers {
if layer.name == "masklayer" {
layer.removeFromSuperlayer()
}
}
Swift 3を使用して popLast()
を使用しました。
self.layer.sublayers?.popLast()