애니메이션이 아닌 Catransaction
-
03-07-2019 - |
문제
Xcode에서 새로운보기 기반 응용 프로그램을 만들었습니다.
ViewController에서 내가 수정 한 유일한 코드는 다음과 같습니다.
- (void)viewDidLoad {
[super viewDidLoad];
UIView *newView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
newView.backgroundColor = [UIColor redColor];
[self.view addSubview:newView];
[CATransaction begin];
[CATransaction setValue:[NSNumber numberWithFloat:0.5f] forKey:kCATransactionAnimationDuration];
newView.layer.frame = CGRectMake(20,20,220,220);
[CATransaction commit];
}
응용 프로그램이로드 되 자마자 반 초 동안 애니메이션하는 빨간 사각형을 생성해야합니다. 문제는 그것이 애니메이션이 아니라는 것입니다. 왜 그런지 알 수 없습니다. 이 간단한 프로젝트를 만들어 모든 변수를 분리했지만 여전히 작동하지 않습니다.
누구나 핵심 애니메이션 독서 자료의 올바른 방향으로 나를 도울 수 있습니까? 나는 이미 Apple의 모든 것을 겪었습니다.
해결책
Calayer에서 속성을 설정하는 경우 코드가 예상대로 애니메이션됩니다 (기본적으로 애니메이션). uiviews가 애니메이션하려면 다음과 같은 블록 내에서 속성을 변경해야합니다.
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0f];
// Change properties here
[UIView commitAnimations];
Catransaction은 애니메이션을 그룹화하여 조정되거나 객체 그룹의 애니메이션을 수동으로 비활성화하는 데 사용됩니다.
다른 팁
누구나 핵심 애니메이션 독서 자료의 올바른 방향으로 나를 도울 수 있습니까? 나는 이미 Apple의 모든 것을 겪었습니다.
보다: Mac OS X 및 iPhone 용 코어 애니메이션 : 강력한 동적 사용자 인터페이스 생성 뷰와 레이어에 대한 핵심 애니메이션의 훌륭한 연습.
제휴하지 않습니다 StackOverflow