2013-08-07 3 views
0

내 앱이 숨겨진 상태에서 실행될 때 UIPicker에서 애니메이션을 만들려고하는데 버튼을 누르면 버튼에서 슬라이딩되어 나타납니다. 버튼을 다시 누르면 슬라이드가 사라집니다. 음, 내 코드는 단지 한 번만 수행합니다. 그렇습니다 :애니메이션 숨기기/보이기 만 한 번 발생

첫 번째 클릭 -> 피커를 보여 isPickerHidden는 = NO

초 클릭 -> 아무것도하지 않지만, 반환 isPickerHidden ->이 isPickerHidden = YES

세 번째 클릭 선택기를 숨 깁니다 = NO viewDidLoad 선언에서 where;

네 번째 클릭과 동일하지만 올바른 BOOL 값을 반환하지 않습니다.

isPickerHidden = YES; 

[self.picker setHidden:isPickerHidden]; 

if(isPickerHidden == NO){ 
     [UIView beginAnimations:nil context:nil]; 
     [UIView setAnimationDuration:0.6]; 
     CGRect frame = self.picker.frame; 
     [self.picker setFrame:CGRectOffset(frame, self.picker.frame.origin.x, self.picker.frame.origin.y)]; 
     [UIView commitAnimations]; 
     isPickerHidden = YES; 
     NSLog(@"hidden yes"); 
    }else if(isPickerHidden == YES) { 
     [UIView beginAnimations:nil context:nil]; 
     [UIView setAnimationDuration:0.6]; 
     CGAffineTransform transfrom = CGAffineTransformMakeTranslation(0, -200); 
     self.picker.transform = transfrom; 
     [self.picker setHidden:NO]; 
     [UIView commitAnimations]; 
     NSLog(@"hidden no "); 
     isPickerHidden = NO; 
    } 

내가 직면 한 문제가 무엇인지 알고 싶습니다. 무엇이 실종되었는지 알고 싶습니다.

답변

0

고맙습니다

NSLog(@"picker: %.0f, %.0f, %.0f, %.0f", self.picker.frame.origin.x, self.picker.frame.origin.y, self.picker.frame.size.width, self.picker.frame.size.height); 
+0

나는 그것을 다시 시도 할 것이다. 다시 돌아올 것이다. –

+0

idk 내가 뭘 잘못했는지는 반복 될 때마다 y 축 값이 244에 의해 추가 된 것 같다. 내가 그것에 대해 알아 낸 것이있다. 변화하지만 너무 도움이되지 않습니다. 어떤 생각 btw? –

+0

은 200pts이며 탐색 표시 줄에서 추가 44pts입니다. – NSMutableString

0

응답에 대한 NS 형제 고맙습니다 ... 무슨 일이 일어나고 있는지 볼 수있는 프레임 및 선택기에 대한 몇 가지 로깅을 추가하지만 난 대신 원래 하나에서 포인트를 상쇄 이제 다른 접근 방식을했다 제가

if(isPickerHidden == NO) { 
     CGRect frame = self.picker.frame; 
     [UIView beginAnimations:nil context:NULL]; 
     [UIView setAnimationDelegate:self]; 
     [UIView setAnimationDuration:0.6]; 

     [self.picker setFrame:CGRectMake(frame.origin.x, frame.origin.y + 216, frame.size.width, frame.size.height)]; 
     [UIView commitAnimations]; 
     isPickerHidden = YES; 

    } else if (isPickerHidden == YES) { 
     CGRect frame = self.picker.frame; 
     [UIView beginAnimations:nil context:NULL]; 
     [UIView setAnimationDelegate:self]; 
     [UIView setAnimationDuration:0.6]; 

     [self.picker setFrame:CGRectMake(frame.origin.x, frame.origin.y - 216, frame.size.width, frame.size.height)]; 
     [UIView commitAnimations]; 
     isPickerHidden = NO; 

    } 

했던, CGRectMake 사용 모두 미끄러 져 잘 동일하게 애니메이션하고있는 최대 슬라이딩. 하지만 지금은 문제가 나는 UIPicker을 appDisLoad에서 앱로드시 사라지게하고 싶었습니다. [self.picker setHidden : YES];를 사용하려고했습니다. 하지만 CGRect를 사용하여 만든 프레임은 버튼을 눌러도 나타나지 않고 알파를 아직 보지 못했습니다.

나는 또한 if-else 문의 본문에 setHidden을 yes로 설정하고 해당 값과 관련하여 알았습니다. 님이 무엇을 놓치고 있는지 알고 싶습니다.