IT TIP

addSubview 애니메이션

itqueen 2020. 12. 27. 20:33
반응형

addSubview 애니메이션


다른 데이터를 표시하는 기본 UIView가 있습니다. 그런 다음 다음과 같은 하위보기를 표시하는 버튼을 넣습니다.

- (IBAction) buttonClicked:(id)sender
{
    UIView *newView = [[UIView alloc] initWithFrame:CGRectMake(25,25,50,20)];
    UILabel *newLabel = [[UILabel alloc] initWithFrame:CGRectMake(25,25,50,25)];
    newLabel.text = @"some text";
    [newView addSubview:newLabel];

    [self.view addSubview:newView];
    [newLabel release];
    [newView release];
}

newView는 잘 보이지만 어떤 식 으로든 자체 애니메이션을 적용하지 않고 즉시 나타납니다. newView가 나타날 때 어떻게 애니메이션을 추가 할 수 있습니까? 확대 / 축소 나 아래로 슬라이드하는 것과 같은 것입니다. 간단한 코드가 있습니까?


안녕하세요 UIView 애니메이션을 사용할 수 있습니다.

[newView setFrame:CGRectMake( 0.0f, 480.0f, 320.0f, 480.0f)]; //notice this is OFF screen!
[UIView beginAnimations:@"animateTableView" context:nil];
[UIView setAnimationDuration:0.4];
[newView setFrame:CGRectMake( 0.0f, 0.0f, 320.0f, 480.0f)]; //notice this is ON screen!
[UIView commitAnimations];

이제 SDK가이를 파악하고 사용자가 지정한 위치로 뷰를 애니메이션합니다. 이것은 알파, 스케일, 경계, 프레임 등 대부분의 UIView 속성에서 작동합니다.

플립 및 컬과 같은 애니메이션 빌드도 있습니다.

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight
                           forView:newView
                            cache:YES];

[self.navigationController.view addSubview:settingsView.view];
[UIView commitAnimations];

이것이 시작하는 데 도움이되기를 바랍니다.)


[UIView transitionWithView:containerView duration:0.5
        options:UIViewAnimationOptionTransitionCurlUp //change to whatever animation you like
        animations:^ { [containerView addSubview:subview]; }
        completion:nil];

QuarzCore 프레임 워크에 대한 링크

#import <QuartzCore/QuartzCore.h>

CATransition *transition = [CATransition animation];
transition.duration = 1.0;
transition.type = kCATransitionPush; //choose your animation
[newView.layer addAnimation:transition forKey:nil];
[self.view addSubview:newView]; 

애니메이션 블록과 옵션을 사용해도 애니메이션을 addSubview만드는 것만으로는 아무런 효과가 없다는 것을 알았 습니다. 하위 뷰의 알파를 0.0으로 설정하고 하위 뷰를 추가 한 다음 알파 설정을 0.0에서 1.0으로 애니메이션하는 해결 방법을 찾았습니다. 이것은 내가 찾고 있던 페이드 인 효과를 제공합니다.

이것이 다른 사람에게 도움이되기를 바랍니다.

UIView *redView = [[UIView alloc] initWithFrame:CGRectMake(20, 20, 100, 100)];
redView.backgroundColor = [UIColor redColor];
redView.alpha = 0.0;

[self.view addSubview:redView];

[UIView animateWithDuration:0.5 animations:^{
  redView.alpha = 1.0;
}];

이 작업을 신속하게합시다.

var redView = UIView(frame:CGRectMake(20,20,100,100))
redView.backgroundColor = UIColor.redColor
redView.alpha = 0.0
view.addSubview(redView)

UIView.animateWithDuration(0.25) { () -> Void in
    redView.alpha = 1.0
}

하위 뷰를 추가하는 것은 단순히 animateWithDuration 블록에 넣어서 애니메이션 할 수 없습니다. 그리고 숨김을 사용하여 애니메이션 할 수 없습니다.

참조 URL : https://stackoverflow.com/questions/2337408/addsubview-animation

반응형