Этот код не будет запускаться для начала, потому что эта строка недопустима
if ([image setFrame:CGPoint =(0, 0, 30, 1500)]) {
Я полагаю, вы хотели сравнить расположение представления
if (CGPointEqualToPoint(image.frame.origin, CGPointMake(0, 0))) {
Ширина вашего изображениятакже установлен на 1500
в местах, которые кажутся не совсем правильными
Последняя причина, по которой это не сработает, заключается в том, что UIView будет смотреть на чистые изменения местоположения и понимать, что представление не перемещается, поэтому он выигралничего не делать.
То, что вам нужно сделать, это, возможно, использовать блоки вроде этого
float duration = 0.5;
int delay = 0;
[UIView animateWithDuration:duration
delay:delay
options:UIViewAnimationCurveLinear
animations: ^{
image.frame = CGRectMake(0, 460, 30, 30);
} completion:^(BOOL finished) {
[UIView animateWithDuration:duration
delay:delay
options:UIViewAnimationCurveLinear
animations: ^{
image.frame = CGRectMake(0, 0, 30, 30);
} completion:nil];
}];