У меня есть 5 CALayers, каждый из которых является собственностью. Скажем, я добавил 3 из них в качестве подзаголовков. Мне нужно сделать chk, если один из слоев уже добавлен в слой.Проверьте, добавлен ли CALayer в качестве подуровня
5
A
ответ
10
Вы пытались продать superlayer
? Он должен быть равен нулю, если ваш слой нигде не добавлен.
6
if (layer.superlayer == parentLayer) {
...
} else {
...
}
4
view.layer.sublayers дает массив подслоев, чтобы увидеть, если ваш слой был добавлен вы можете сделать что-то вроде view.layer.sublayers.count и когда счетчик достигает уровня, что вы ожидаете DonT добавить больше для ex.
if (view.layer.sublayers.count < 3) {
//add layer
}else{
// do nothing because the layer has already been added.
}
Вы также можете изучить каждый слой в подслое, чтобы лучше определить слой, который вы ищете. Поскольку они являются свойствами, вы должны иметь возможность выполнить сравнение с каждым из слоев в массиве, чтобы увидеть, добавлен ли слой, который вы ищете.
0
// проверить CALayer Содержит подуровень (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. как вы изменяете размер CALayer после того, как он был добавлен в качестве подуровня
- 2. Неожиданное поведение при добавлении CALayer в качестве подуровня в UIImage
- 3. CALayer не отображается, если добавлен после просмотраDidLoad
- 4. Проверьте, добавлен ли логин в User Defined Database Role
- 5. Неожиданное поведение при добавлении подуровня в UICollectionViewCell
- 6. Проверьте, был ли новый элемент добавлен в таблицу в Protractor
- 7. Ошибка документа TDD: проверьте, был ли добавлен элемент в DOM
- 8. Angular2 - Проверьте, добавлен ли новый класс в директиву с @HostListener
- 9. Проверьте, был ли добавлен текст в элемент с консолью Firefox.
- 10. Vim: проверьте, работает ли в качестве пейджера
- 11. Проблема с множественной производительностью CALayer
- 12. Что препятствует перемещению подуровня с родителем?
- 13. Обнаружение касаний элементов подуровня
- 14. Проверьте слой, который был добавлен CCSprite в
- 15. Может ли SwapChainBackgroundPanel быть добавлен в качестве дополнительного элемента управления?
- 16. Проверьте, добавлен ли динамически добавленный текст TextEdit. Android
- 17. Получает ли CALayer его содержимое?
- 18. Почему неявная анимация отсутствует при добавлении подуровня к слою?
- 19. Добавлен элемент в качестве первого ребенка
- 20. Проверьте, из какого заголовка файла был добавлен?
- 21. CALayer, subLayer alpha overriding
- 22. Знайте, добавлен ли класс (был добавлен javascript)
- 23. Рисование UIImage в CALayer
- 24. Добавить CALayer в качестве подслоя с центром в UIView
- 25. Wordpress 1st. уровня и подуровня
- 26. Получение контура округленного угла контура CALayer в качестве обтравочного контура
- 27. Сохраняет ли CALayer объекты CGColor?
- 28. Как удалить CALayer при завершении анимации?
- 29. Использование CALayer в качестве фона для других NSViews
- 30. UIView: Как оживить рамку CALayer с тенью?
ТНХ протестировали супер слой против ноль работал только право – abe