두 개의 UILabels를 업데이트하고 화면의 오프 스크린에서 개체 애니메이션을 시작하는 데 사용하는 일련의 UIButton이 있습니다. 진행은 이것 같이 간다. 버튼 1 & 2가 표시되고 사용자가 버튼을 누르면 UILabel이 업데이트되고 새 UIImageView가 화면에 표시됩니다. 이것은 두 번째 라운드에서 첫 번째 반복이 잘 작동하고, 숨겨진 버튼 3과 4는 보이게됩니다. 사용자가 버튼 3 또는 4를 선택하면 다른 UIImageView가 화면에 애니메이션으로 표시되어야합니다 (다른 이미지 위에 ... "스태킹"). UIImageView는 사용자가 버튼 1 또는 2 중 하나를 눌렀을 때 애니메이션으로 나타나 사라지고 아무 것도 움직이지 않습니다. UILabels가 단추 선택에 따라 업데이트해야하는 경우에만 발생합니다. UILabel에서 업데이트 할 필요가 없으므로 애니메이션이 올바르게 작동합니다.UIImageView가 사라질 때 UILabel이 업데이트되었습니다.
와 관계있는 코드 : 나는 그것을 방지하는 방법을 바로 확인하지 UILabel의 ... 임을 업데이트 다시 도달로
-(IBAction)didTapSizeButton:(id) sender {
if ([sender tag] == 1) {
sizeLabel.text = @"12 oz";
}
else if ([sender tag] == 2) {
sizeLabel.text = @"24 oz";
}
if (coasterTwo.center.x != 150) {
[UIView animateWithDuration:0.35
delay:0
options:(UIViewAnimationOptionCurveEaseOut)
animations:^{
coasterTwo.center = CGPointMake(150, 220);
} completion:^(BOOL finished) {
}];
}
containerOne.hidden = NO;
containerTwo.hidden = NO;
}
-(IBAction)didTapContainerButton:(id)sender {
if ([sender tag] == 3) {
containerLabel.text = @"Bottle";
}
else if ([sender tag] == 4) {
containerLabel.text = @"Can";
}
if (coasterTwo.center.x == 150 && coasterThree.center.x != 150) {
[UIView animateWithDuration:0.35
delay:0
options:(UIViewAnimationOptionCurveEaseOut)
animations:^{
CGPoint center = coasterThree.center;
center.x += 305;
coasterThree.center = center;
}
completion:^(BOOL finished){
}];
}
}
UIImageViews은 분명히 즉시 자신의 시작 위치로 재설정됩니다.
[UIView beginAnimations:nil context:nil];
//Code for changing frames/alpha/anything else that is animatable
[UIView commitAnimations];
이이 밖으로 시도 도움이된다면 참조 : 당신이 완료 블록을 필요로하지 않기 때문에
이상한. 당신은 서브 클래 싱 된 UIView 또는 이와 비슷한 것을 사용하지 않습니다. 그렇습니까? 왜 "UIImageViews가 분명히 시작 위치로 재설정됩니다"라고합니까? 위 코드에서 제안 할 사항은 없습니다. 일반적으로 자신의 'drawRect'와 같은 위치 (프레임, 원점 또는 중심)를 다시 설정하는 코드가 없으면 시작 위치로 재설정되지 않습니다. 'viewDidLoad'가 아닌 다른 코드를 가지고 있다면 그것을 공유하십시오. – Rob
매우 이상하게 ... .m 파일에는 단추 사용자 지정을 처리하고 단추에 .hidden 및 .tag 속성을 설정하는 것 외의 다른 코드가 없습니다. 'viewDidLoad'와'shouldAutorotateToInterfaceOrientation'을 제외하고 전체 .m이 보여집니다. UIImageView 위치 재설정은 적절한 단어가 아닐 수도 있지만 버튼 3 또는 4를 누를 때 UIlabel이 업데이트 될 때 발생하는 동작을 가장 잘 나타냅니다. – blueHula
그러나 문제는 여기에 있지 않습니다. – Rob