私は5つのCALayersを持っています。 3つをサブビューとして追加したとします。レイヤーの1つがすでにレイヤーに追加されている場合は、そのレイヤーにチャンクが必要です。CALayerがすでにサブレイヤとして追加されているかどうか確認してください。
5
A
答えて
10
superlayer
プロパティを試しましたか?レイヤーがどこにも追加されていない場合はゼロにする必要があります。
6
if (layer.superlayer == parentLayer) {
...
} else {
...
}
4
view.layer.sublayersは、あなたの層は層数は、あなたがいけない期待に達すると、あなたがview.layer.sublayers.countような何かをしてすることができます追加されましたかどうかを確認するために、あなたのサブレイヤーの配列を与えますexのためにもっと追加してください。
if (view.layer.sublayers.count < 3) {
//add layer
}else{
// do nothing because the layer has already been added.
}
また、サブレイヤアレイの各レイヤを調べて、探しているレイヤをより正確に識別することもできます。それらはプロパティなので、配列内の各レイヤーと比較して、探しているレイヤーが追加されているかどうかを確認することができます。 CALayerのをチェックする
0
//はサブレイヤ(shpapelayer/textlayer)
if myShapeLayer.sublayers?.count>0 { var arr:NSArray? = myShapeLayer.sublayers as NSArray var i:Int=0 for i in 0..<arr!.count { var a: AnyObject = arr!.objectAtIndex(i) if a.isKindOfClass(CAShapeLayer) || a.isKindOfClass(CATextLayer) { if a.isKindOfClass(CAShapeLayer) { a = a as! CAShapeLayer if CGPathContainsPoint(a.path, nil, pointOfCircle, true) { NSLog("contains shape layer") } else { NSLog("not contains shape layer") } } if a.isKindOfClass(CATextLayer) { a = a as! CATextLayer var fr:CGRect = a.frame as CGRect if CGRectContainsPoint(fr, pointOfCircle) { NSLog("contains textlayer") } else { NSLog("not contains textlayer") } } } } }
関連する問題
- 1. program_optionsが追加されたかどうか確認してください
- 2. CCFriteがレイヤーに追加されているかどうか確認してください
- 3. 支払い情報が追加されているかどうか確認してください
- 4. ファイルがアップロードされているかどうか確認してください。
- 5. ステータスバーが隠れているかどうかを確認してください
- 6. Angular2 - @HostListenerでディレクティブに新しいクラスが追加されていないか確認してください。
- 7. アップロードファイルがパスワードで保護されているか確認していないか確認してください。
- 8. プロセスがパイプとして実行されているかどうかを確認してください。
- 9. プロセスがアイドリングしているかどうかを確認してください。
- 10. flinkがサポートしているかどうかを確認してください。
- 11. RunOnUiThreadが必要かどうか確認してください。
- 12. Curlドメインがルートかどうか確認してください。
- 13. DrawableResがVectorDrawableかどうか確認してください
- 14. Shell:5秒間ファイルに新しい行が追加されていないか確認してください。
- 15. テスト:タプルが返されるかどうか確認してください。
- 16. OAuth 2.0が既に承認されているかどうかを確認してください
- 17. タイムスタンプmongodbを使用してデータが追加されていることを確認してください
- 18. どのマウスボタンが押されているか、ダブルクリックされていないか確認してください。
- 19. グリフが "正しく"レンダリングされているかどうか確認してください
- 20. グラブルテストがシェルスクリプトで行われるかどうか確認してください
- 21. オブジェクトがリリースされたかどうかを確認してください。
- 22. Plone:フォームが提出されたかどうか確認してください。
- 23. マウスクリックが処理されたかどうか確認してください
- 24. QColorDialogがキャンセルされたかどうかを確認してください。
- 25. カラム名が渡されたかどうかを確認してください。
- 26. リンクされたリストが回文かどうか確認してください
- 27. sedコマンドが変更されたかどうか確認してください。
- 28. 必要に応じてcygwinがインストールされているかどうか確認してください。
- 29. Xamarin:カレンダーに追加する前にイベントが存在するかどうかを確認してください。
- 30. Android:Bluetoothがどのデバイスに接続されているかどうかを確認してください。
はTHXがnilに対するスーパー層はちょうど働いていたテストが含ま – abe