2012-08-29 6 views
0

UICegmentedControl을 내 XIB에 설정했습니다. viewDidLoad에 표시하고 사용자가 화면 영역을 가볍게 두드리면 사용자가 다시 탭하면 사라지거나 사용자가 혼자 떠나는 경우 사라지기를 원합니다.XID에서 UISegmentedControl을 페이드 인/페이드 아웃합니다.

이것을 관리하는 방법을 살펴보면 UIViews의 페이드에 대해 많은 것을 발견했지만, 개별 하위 뷰는 희미 해지는 것이 아니라 XIB의 페이딩 요소에 대해서는별로 중요하지 않습니다. 나는 UIView 물건을 적응 시키려고했지만 실패했다.

어떻게하면됩니까?

편집 : 좋아요, 저는 viewDidLoad에서 모양을 얻었고 페이드 아웃이 작동합니다. 그러나 사용자가 UISegmentedControl이있는 영역 (현재 알파 = 0이므로 보이지 않음)을 두드리면 아무 일도 일어나지 않습니다. 이것은 내가 사용하고있는 코드입니다 :

- (IBAction)tapInvisibleSegContr 
//This is connected to the UISegmentedControl with the action Touch Up Inside. Until now, the segmented control has been at alpha=0 since fading after viewDidLoad. 
{ 
    self.segContrAsOutlet.alpha=1.0; 
    [self fadeMethodThatWorksInViewDidLoad]; 
    NSLog(@"Yup, tapped."); 
} 

나는 심지어 NSLog를 얻지 못했습니다. Touch Up Inside 액션으로 UISegmentedControl에 연결된 액션이 있습니다. 내가 뭘 놓치고 있니?

답변

3

, 연결 적절를 수행 아울렛과 가치에 대한 IBAction를이
을 변경 그런 다음 viwDidLoad 바로 [super viewDidLoad] 후 쓰기에 :

[UIView animateWithDuration:1 animations:^{self.mySegOutlet.alpha = 1;}]; 

IBAction를 내부 당신은 마지막 } 쓰기 전에 답을 코딩 직후 :

[UIView animateWithDuration:1 animations:^{self.mySegOutlet.alpha = 0;}]; 

이 가장 쉬운 방법입니다.
안녕

+0

정말 고마워요! 그것의 첫 번째 부분 인 viewDidLoad가 도움이됩니다. 하지만 이제는 두드리기와 재현에 문제가 있습니다. 코드를 포함하도록 질문을 편집했습니다. 확실한 오류라고 확신합니다 .... –

+0

숨겨진 UISegmentedControl 또는 UIControl 인스턴스는 숨김 또는 알파 <0.6 인 경우 절대로 터치하지 않습니다. 다른 방법을 찾아야합니다 ;-) – Andrea

+0

아! 좋아 감사합니다. 슬프지만. :) –

1

xib에서 컨트롤의 알파를 0.0으로 설정 한 다음 UIView 애니메이션 메서드를 사용하여 알파를 1.0에 애니메이션으로 적용합니다.

[UIView animateWithDuration:1.0 animations:^{ 
    self.segmentedControl.alpha = 1.0f; 
}]; 

편집 : 예를 들어, 값을 연결 시도라는 조치를받지와 문제에 대한 제어 이벤트를 변경 - 나는 UISegmentedControl가 내 터치에 대한 전송 생각하지 않습니다. 이 주민은 XIB에, 그냥 0으로 자신의 알파를 넣어

+0

고마워요. 그것의 첫 번째 부분 인 viewDidLoad가 도움이됩니다. 하지만 이제는 두드리기와 재현에 문제가 있습니다. 코드를 포함하도록 질문을 편집했습니다. 나는 그것이 명백한 오류라고 확신합니다 .... –

+0

새로운 문제를 반영하기 위해 편집되었습니다. –

+0

정말 고맙겠습니다.하지만 아아, Value Changed로 변경해도 차이가없는 것 같습니다. 그것은 여전히 ​​나타나기를 거부합니다. : –

관련 문제