Анимация с помощью UISwitch

Я хочу иметь возможность создавать анимацию, которая запускается с помощью UISwitch. В настоящее время у меня есть этот код, чтобы скрыть некоторые элементы пользовательского интерфейса, когда переключатель включен:

-(IBAction)displayStartingAddress:(id)sender{
    NSLog(@"starting displayStartingAddress");
    if (enterStartingAddress.hidden==YES) {
        enterStartingAddress.hidden=NO;
        startingAddress.hidden=NO;

    }else{
        enterStartingAddress.hidden=YES;
        startingAddress.hidden=YES;
    }
}

И я хочу, чтобы переключатель вызывал анимацию для элементов пользовательского интерфейса, чтобы переместить их вниз, когда показываются "enterStartingAddress" и "startAddress".

Я очень новичок в программировании iOS и Objective-C, поэтому любая помощь будет принята с благодарностью. Благодарю.

1 ответ

Решение

Если вы сразу установите скрытые элементы интерфейса, анимация не будет выполняться, поскольку она будет скрыта во время анимации. Что вы хотите сделать, это оживить alpha имущество. Это видимость объекта. Вот пример анимации фрейма и альфы:

-(IBAction)displayStartingAddress:(id)sender{
    CGRect frame1 = enterStartingAddress.frame;
    CGRect frame2 = startingAddress.frame;

    if (enterStartingAddress.alpha==0) { //not the best way to do it to be honest
        frame1.origin.y += 100;
        frame2.origin.y += 100;
        [UIView animateWithDuration:0.5 animations:^{  
             enterStartingAddress.alpha = 1;
             startingAddress = 1;
             enterStartingAddress.frame = frame1;
             startingAddress.frame = frame2;
        }];    
    }

    else{
        frame1.origin.y -= 100;
        frame2.origin.y -= 100;
        [UIView animateWithDuration:0.5 animations:^{  
             enterStartingAddress.alpha = 0;
             startingAddress = 0;
             enterStartingAddress.frame = frame1;
             startingAddress.frame = frame2;
        }]; 
    }
} 
Другие вопросы по тегам