2011-12-23 33 views
1

我在單元格的最右側有一個按鈕。Picker視圖不會出現在第一次嘗試按鈕單擊時

現在我有一個選擇器視圖,需要在按鈕單擊時顯示。

其工作細跟下面的代碼:

-(IBAction)buttonPressed:(id)sender 
{ 
[UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:0.3]; 
    CGAffineTransform transform = CGAffineTransformMakeTranslation(0, 200); 
    monthPicker.transform = transform; 
    [self.view addSubview:monthPicker]; 
    [UIView commitAnimations]; 
} 

但我搜索了使選擇器視圖隱藏時,它是可見的,當沒有選擇器視圖存在顯示,我發現它的解決方案.. ...將以下代碼添加到上述方法中:

monthPicker.hidden = [monthPicker isHidden]? NO:YES;

現在,選擇器視圖在第一次嘗試時沒有顯示,當我單擊按鈕時,但它在第二次嘗試和以後的時間內都能正常工作。

有什麼建議嗎?

回答

1

@Padavan的答案應該可以工作,但是如果你想在「動畫」中使用淡入淡出效果,隱藏屬性不會完成這項工作。您必須改用UIView.alpha屬性。這是我的示例代碼。

- (void) viewDidLoad { 
     [super viewDidLoad]; 

     ///////////////////////////////////////////////// 
     // ... Initialize your month picker here // 
     ///////////////////////////////////////////////// 

     monthPicker.alpha = 0;  
     [self.view addSubview:monthPicker];  
} 

- (void)buttonPressed:(id)sender 
{ 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:0.3]; 
    CGAffineTransform transform = CGAffineTransformMakeTranslation(0, 200); 
    monthPicker.transform = transform; 
    monthPicker.alpha = monthPicker.alpha * (-1) + 1; 
    [UIView commitAnimations]; 
} 
+0

大麥先生謝謝你的答案,這工作完美...再次感謝很多...... Merry X-Mas提前:) –

1

monthPicker最初是隱藏的嗎?當第一次調用方法時。如果沒有 - 它隱藏,你看不到它。也許你需要在init方法中設置monthPicker.hidden=YES

+0

感謝您的回答一個很多... 是Mr.Padavan,最初選擇器視圖是隱藏的,在按鈕單擊它必須出現....所以你建議我已經初始化隱藏在選擇器視圖屬性爲YES按鈕操作方法本身,它顯示,但不會消失現在在第二次點擊... 並且 - (id)初始化方法我指定隱藏狀態爲YES,但它不工作請幫助我... –

+0

我不知道爲什麼在「按鈕操作」中將隱藏屬性設置爲YES。正如Padavan所說,你只需要在初始化代碼中添加monthPicker.hidden = YES。 – barley

+0

作爲一個方面說明,我認爲你應該在init方法中調用[self.view addSubview:monthPicker](我更喜歡loadView或viewDidLoad)。否則,每次單擊按鈕時,都會向父視圖添加相同的選取器視圖,而這完全是不必要的。 – barley

相關問題