Слой метода класса CAShapeLayer недоступен в Swift

В Objective C приведенный ниже код работает.

CAShapeLayer  *shapeLayer = [CAShapeLayer layer];

Я пытаюсь преобразовать то же самое в Swift. Но в сообщениях об ошибках говорится, что CAShapeLayer не имеет члена с именем «слой».

var shapeLayer:CAShapeLayer = CAShapeLayer().layer

Or

CAShapeLayer().layer

Любая альтернатива получить слой?

Спасибо


person selva    schedule 12.03.2015    source источник


Ответы (2)


Я думаю, CAShapeLayer() уже возвращает экземпляр CAShapeLayer, так что это

  var shapeLayer : CAShapeLayer = CAShapeLayer()
    //customize your layer
    shapeLayer.fillColor = UIColor.redColor().CGColor
    self.layer.insertSublayer(shape, atIndex: 0)

должно сработать.

person LoVo    schedule 12.03.2015

Эквивалент

CAShapeLayer *shapeLayer = [CAShapeLayer layer];

в Swift просто

var shapeLayer = CAShapeLayer()

Тогда вы можете сделать

shapeLayer.frame = self.bounds
shapeLayer.lineWidth = 3.0
...
person Eric Aya    schedule 12.03.2015