나는 스윙 미터를 만들려고합니다. 골프 게임에서 사용되는 것과 비슷합니다. 사용자가 스윙을 시작하는 버튼을 누르고, 힘을 결정하기 위해 꼭지점에서 벗어납니다. , 그 시점에서 '스윙'이 방향을 바꾼다. 그리고 사용자는 정확도를 설정하기 위해 다시 길을 가린다.코어 애니메이션을 사용하여 iPhone에서 스윙 미터 만들기
막대가 가득 차는 대신 왼쪽에서 오른쪽으로 흔들리는 진자를 사용하고 싶습니다. 진자는 처음으로 두드려진 부분 (힘)과 두 번째로 클릭 한 부분 (정확함)을 남깁니다.
내 첫 번째 문제는 진자를 돌리는 것입니다. 있는 UIImageView에게 접근하는 가장 좋은 방법은 회전, here, here 및 here하지만 난 약간의 추가 조언 : 모든
첫째을 얻을 수있을 기대했다 - 나는있는 UIImageView 회전에 대해이 글을 읽어 봤는데 이? 진자가 올바른 지점의 좌표와 그 좌표를 비교함으로써 진자가 얼마나 가까운 거리에 있는지를 생각하고있었습니다. 그러나 이것이 작동하려면 UIImageView가 물리적으로 움직여야 만 할 것인가? 또한 UIImageView를 중심점이 아닌 특정 지점을 중심으로 회전시키는 방법은 무엇입니까? 아니면 진자의 테두리 상자를 더 크게 만들어 중심점이 정확한 위치에 있어야합니다. 그리고 어떻게 사용자가 버튼을 친다 (또는 놓을 때) '스탬프'를 남길 수 있습니까? 이 접근하는 가장 좋은 방법에 대한
모든 일반 도움말 매우 아마도 내 질문이 조금 애매하고 일반화입니다 :) 평가 될 것입니다,하지만 난 누군가가 도전 :
감사를 좋아할 것 바라고 있어요!
마이클
UPDATE :
이좋아 내가했습니다 시도 다음과 같은 두 가지 방법은, 둘 다 지금 작동합니다.
- (void)viewDidLoad {
pendulum.image = [UIImage imageNamed:@"winkOpen.png"];
[self swingPendulum];
}
- (void)swingPendulum {
CABasicAnimation *rotationAnimation;
rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
rotationAnimation.toValue = [NSNumber numberWithFloat:degreesToRadian(180)];
rotationAnimation.duration = 0.75;
rotationAnimation.repeatCount = 1.0;
rotationAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
[pendulum.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
}
/*
- (void)swingPendulum {
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1];
pendulum.transform = CGAffineTransformMakeRotation(degreesToRadian(180));
[UIView setAnimationDelegate:self];
[UIView commitAnimations];
}
*/
는 지금은 더 나은 어떤 방법 모르겠어요,하지만 첫 번째로, 오히려 아래에 0보다 도로 위의 진자 그네, 그래서 나는 그와 함께 갈거야.
이제 진자가 멈추는 위치를 결정하고 스윙을 뒤집을 필요가 있습니다 ...하지만 어쩌면 제가 조금 어수선 해지고 있기 때문에 별개의 질문으로 게시 할 것입니다! 내 질문이 미래에 더 구체적인지 확인해 보겠습니다.
"Swingometer"라고 생각했는데 재미있을 것 같습니다. 그런 다음 질문을 읽고 그것이 골프에 관한 것이 었습니다. 한숨. 쇠약에 대해 이야기하십시오. – TechZen
글쎄, 실제로 골프 게임에 사용하지는 않겠지 만, 그게 문제를 가장 정확하게 설명하는 예제라고 생각했습니다.흥미 롭습니다. :) – Smikey
"Undefined symbols"오류는 QuartzCore 프레임 워크 (Core Animation 클래스 및 데이터 유형 포함)를 연결하지 않아서 발생합니다. 또한 실용적인 문제로, 사용자가 스윙하면서 디스플레이를 실제로 어떻게 보게 될까요? –