나는 간단한 해결책이 있기를 바랍니다. 단추, 타이머, 프레임, cgaffinetransformrotations 및 지연을 사용하여 흔들 효과를 만들려고합니다. 버튼을 돌릴 때 버튼의 프레임을 설정하여 y를 10 픽셀 정도 줄이거 나 늘리면 회전이 버튼의 프레임을 평소보다 크게 만듭니다. 최종 결과는 스크린을 삼킬 때까지 지속적으로 증가하는 버튼입니다.프레임의 CGPoint 만 설정하십시오.
나는 상향 및 하향 움직임 cgaffinetranslations를 만들려고했으나 transform 속성 (회전이 사용하는 것과 동일한)을 사용합니다. 결과는 매우 불안정하고 사실적이지 않은 봅입니다.
나는 하드 코드 된 너비와 높이를 지정해도 회전하고 커질 때 축소되도록하기 때문에 너비와 높이를 지정하지 않고 프레임의 원점 구성 요소를 설정하기 만하면됩니다. 그것은 다시 평형에 다가 섰다.
아이디어가 있으십니까?
감사합니다.
코드 :
- (void)movePlay{
[self performSelector:@selector(moveDown:) withObject:play];
[self performSelector:@selector(rotateRight:) withObject:play afterDelay:0];
[self performSelector:@selector(moveUp:) withObject:play afterDelay:0.5];
[self performSelector:@selector(rotateLeft:) withObject:play afterDelay:1];
}
- (void)moveUp:(UIButton*)log{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:.5];
log.transform = CGAffineTransformMakeTranslation(0, -20);
[UIView commitAnimations];
}
- (void)rotateRight:(UIButton*)log{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1];
log.transform = CGAffineTransformMakeRotation(0.0174532925*10);
[UIView commitAnimations];
}
그냥 힌트와 먼저 결합 "속성을 변환하는 경우 경고 (안 신원,이 속성의 값을 변환 프레임)는 정의되어 있지 않으므로 무시해야합니다. " 의미, 아마 프레임 대신 경계를 설정해야합니다. – lukasz