Если свойство transform
отличается от идентификатора, свойство frame
не определено.Вы не должны читать или писать в него.Вместо этого вы должны использовать свойства center
и bounds
.
Также в ваших -setRotation
первые 2 строки бесполезны.Первая строка присваивает значение, которое затем перезаписывается второй строкой.Чистым эффектом второй строки является присвоение идентификатора переменной (перевод 0, 0 - ничто).Вместо этого метод может быть просто
self.transform = CGAffineTransformMakeRotation(degreesToRadians(rotation));