2011-03-28 40 views
1

我有一個視圖控制器,它實現了一個nib文件中的表視圖,它的視圖插座直接連接到Interface Builder中的表視圖。如何在表格視圖上呈現UIPicker?

在一些情況下,我想要做的是將UIDatePicker從屏幕底部滑入視圖中,允許用戶進行選擇,然後將其向下滑動。

我已經得到了選擇器滑入屏幕但是我的問題是,因爲我需要添加它作爲這樣子視圖,[self.view addSubview:pickerContainer];發生了什麼是選擇器被添加到表視圖,每當我嘗試要改變它的值,整個選取器會隨着桌子上下滑動。

我應該怎麼做才能在表格視圖上方顯示DatePicker?

回答

1

聽起來像你應該模式地呈現它。

[pickerContainer setModalPresentationStyle:UIModalPresentationCurrentContext]; 
[self presentModalViewController:pickerContainer animated:YES]; 

並把完成/選擇/等按鈕時調用時做到這一點:

[self dismissModalViewControllerAnimated:YES]; 

編輯:的另一種選擇是有一個父UIViewController既表視圖,再隱藏視圖。關閉屏幕(分層你的表視圖的頂部)的底部位置隱藏的視圖,確保控制開始禁用,然後調用:當用戶表示他們正在做選擇日期

[UIView animateWithDuration:1.0 /* set number of seconds it takes to slide here */ 
animations:^ 
{ 
    [pickerContainer setFrame:/*the position you want it to slide in to*/]; 
} 
completion:^(BOOL finished) 
{ 
    [pickerContainer.picker setEnabled:YES]; // only enabled once the animation is done 
    [pickerContainer.doneButton setEnabled:YES]; // same for the button to close the view 
}]; 

,再次使用setFrame:回到視圖的原始位置以將其滑出並禁用控件。

+0

這會覆蓋整個屏幕嗎?我寧願只有它覆蓋我的看法的底部... – cgossain 2011-03-29 00:06:26

+0

啊。那麼模態不適合你。 – darvids0n 2011-03-29 00:07:46

+0

好的。感謝您的回答。 – cgossain 2011-03-29 00:10:28

0

自iOS 3.2以來,您可以將UITextFieldinputView屬性設置爲UIPickerView。這將取代鍵盤與您以前的觀點適用於inputView,並呈現此視圖,如果該textField成爲firstResponder。