Кажется, я не могу заставить простое 3d-преобразование работать с кнопкой, и документация, похоже, не помогает.Я начал с шаблона приложения на основе вида.Я добавляю в каркас QuartzCore и импортирую его в заголовок ViewController.В конструкторе интерфейса я перетаскиваю две кнопки Round Rect и соединяю их с button1 и button2 соответственно, а также соединяю их обоих с buttonPressed: метод.
Быстрый запуск с закомментированной анимацией подтверждает, что тольконажатие кнопки изменяет ее метку.
После возврата анимации я получаю сообщение «Несовместимый тип» для аргумента 1 «setTransform:» в «sender.transform = t;»line (Теперь эта фиксированная линия изменена на [sender.layer setTransform: t];)
Как мне заставить его вращаться на 360 градусов.Я думаю, что проблема в том, что начальное и конечное состояния одинаковы, поэтому он не знает, где их вращать.
@interface animation2ViewController : UIViewController {
IBOutlet UIButton *button1;
IBOutlet UIButton *button2;
}
-(IBAction) buttonPressed:(UIButton *)sender;
@end
И файл .m
#import "animation2ViewController.h"
@implementation animation2ViewController
-(IBAction)buttonPressed:(UIButton *)sender {
[sender setTitle:@"new title" forState:UIControlStateNormal];
[UIView animateWithDuration:1.0
delay:0.0
options:UIViewAnimationCurveEaseInOut
animations:^{
CATransform3D t = CATransform3DIdentity;
t.m34 = -1 / 1000;
t = CATransform3DRotate(t, 360 * M_PI / 180, 0.0, 1.0, 0.0); //ultimately want 360 degrees but starting here first
[sender.layer setTransform:t];
}
completion:^(BOOL finished) {
}];
}