2012-05-07 3 views

ответ

10

Вы пытались продать superlayer? Он должен быть равен нулю, если ваш слой нигде не добавлен.

+1

ТНХ протестировали супер слой против ноль работал только право – abe

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") 
    
                  } 
                 } 
    
                } 
               } 
              } 
    
Смежные вопросы