2016-01-08 2 views
0

Я пытаюсь применить аффинное преобразование к CALayer используя следующий код:не может присвоить свойство: «CALayer» неизменен

var myLayer:CALayer! 
myLayer.affineTransform = CGAffineTransformMakeRotation(0) 

Но я встретился с ошибкой

не может присваивать свойству: «myLayer» неизменен.

Что необходимо исправить?

ответ

7

Если вы хотите установить AffineTransform CALayer используют myLayer.setAffineTransform(CGAffineTransformMakeRotation(0))

Вы не можете сделать так: myLayer.affineTransform = CGAffineTransformMakeRotation(0) потому affineTransform() это метод, а не свойство

Для получения дополнительной информации см: CALayer

+0

потрясающий! отлично работает –

1

Вы не говорите, что собой представляет собой, но UIView имеет свойство слоя, и если вы хотите его захватить, вы можете использовать view.layer или установить константу (то есть «let layer = view.layer») , Вероятно, ваша ошибка связана с попыткой принудить ваше неизменяемое свойство слоя к var.

+0

летучей мыши решение решило мою проблему, но им интересно понять, о чем вы говорите ... не мог бы позволить «layer = view.layer» всегда быть неизменным? –

+0

Да, используя let - но ваш код использует «var». На самом деле, вы можете использовать var, но нет никаких оснований - view.layer.setA ... это то, что вы хотите. –

Смежные вопросы