如何顯示來自UITableViewCell的UIDatePicker
,並讓datepicker
在頂部有一個工具欄,讓您辭職?有沒有什麼好的教程如何做到這一點?如何從uitableviewcell顯示uidatepicker
6
A
回答
4
我最近只需要做同樣的事情。
- 插入
UITextField
到您的UITableViewCell
(您可能需要創建一個自定義UITableViewCell
取決於你是否希望它出現在您的UITableView
的每一個動態的細胞或單細胞靜態)。 爲
UIDatePicker
創建屬性,一個UIToolbar
和UITextField
,然後在IB掛鉤的UITextField
屬性在第1步(創建了UITextField
如果您正在使用自定義UITableViewCell
類,這也正是UITextField
財產需要去):@property (strong, nonatomic) UIDatePicker * datePicker; @property (strong, nonatomic) UIToolbar * datePickerToolbar; @property (strong, nonatomic) IBOutlet UITextField *textField; ... @synthesize datePicker, datePickerToolbar, textField;
設置你
UIDatePicker
,UIToolbar
和UITextField
:- (void)viewDidLoad { // Initialise UIDatePicker datePicker = [[UIDatePicker alloc] init]; datePicker.datePickerMode = UIDatePickerModeTime; [datePicker addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged]; // method to respond to changes in the picker value // Setup UIToolbar for UIDatePicker datePickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 44)]; [datePickerToolbar setBarStyle:UIBarStyleBlackTranslucent]; UIBarButtonItem *extraSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(dismissPicker:)]; // method to dismiss the picker when the "Done" button is pressed [datePickerToolbar setItems:[[NSArray alloc] initWithObjects: extraSpace, doneButton, nil]]; // Note: If you're using dynamic cells, the below 2 lines need to be in your cellForRowAtIndexPath method instead. // Set UITextfield's inputView as UIDatePicker textField.inputView = datePicker; // Set UITextfield's inputAccessoryView as UIToolbar textField.inputAccessoryView = datePickerToolbar; }
設置
dismissPicker
方法:-(void)dismissPicker:(id)sender{ [textField resignFirstResponder]; }
設置
datePickerValueChanged
方法:- (void)datePickerValueChanged:(id)sender{ NSDate *selectedDate = datePicker.date; NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"HH:mm"]; [textField setText:[df stringFromDate:selectedDate]]; }
注:在我的代碼,我需要的接口來顯示時間,因此日期格式在這裏設置(HH:mm
)。因此,您還會注意到,在viewDidLoad
的UIDatePicker
初始化代碼中,我已將其模式設置爲UIDatePickerModeTime
。對於日期選擇,您可能需要將其設置爲UIDatePickerModeDate
。
3
您可以在UITableViewCell中放入一個不可見的UITextField,並將UITextFields的inputview設置爲UIDatePicker。在這裏我們的代碼:
yourdatePicker = [[UIDatePicker alloc]init];
yourtextField.inputView = yourdatePicker;
0
我正在使用ActionSheetPicker [1]。它允許您從部分重疊當前場景的操作表中顯示任何類型的選取器。此外,您可以添加按鈕(如取消或「今天」)和視圖頂部的標題。
[1]:原始版本由Tim Cinel:https://github.com/TimCinel/ActionSheetPicker 通過改進哈日卡勒姆·辛格:在我的叉子https://github.com/Club15CC/ActionSheetPicker 固定棄用(我認爲現在蔓延到其他人的):https://github.com/booiiing/ActionSheetPicker
相關問題
- 1. UIDatePicker不會顯示後,UITableViewCell選擇
- 2. 的UIDatePicker內的UITableViewCell不顯示小時
- 3. 從UIDatePicker重置UITableViewCell
- 4. UIDatePicker顯示秒數
- 5. UITableView在UITableViewCell內容視圖中顯示UIDatePicker
- 6. 如何顯示來自UIDatePicker的時間
- 7. 如何在iPad中顯示UIDatePicker?
- 8. 我該如何顯示UIDatePicker HH:MM:SS
- 9. 如何突出顯示UITableViewCell
- 10. 從iPhone中的UIDatePicker顯示星期幾
- 11. 如何從的UIDatePicker
- 12. 如何從的UIDatePicker
- 13. 如何將數據從UIDatePicker顯示到UITableView中?
- 14. UiDatePicker顯示但不顯示UIPickerView
- 15. 在UIPopover內顯示UIDatePicker
- 16. 點擊表格顯示UIDatePicker
- 17. 顯示空值的UIDatePicker值
- 18. 顯示的UIDatePicker被解僱
- 19. Xcode 7.2 - UIDatePicker沒有顯示
- 20. UIDatePicker只顯示月和日
- 21. UITableViewCell未顯示
- 22. 如何在uitableviewcell中顯示錶格
- 23. 如何顯示左刪除按鈕UITableViewCell
- 24. 如何使UITableViewCell分隔符顯示?
- 25. 如何在UITableviewCell中顯示Json數據
- 26. 如何在uitableviewcell上顯示UIImage
- 27. 如何顯示和URL,在UITableViewCell中
- 28. 如何在UITableViewCell中顯示FBSDKLoginButton?
- 29. 如何設置從的UIDatePicker
- 30. UITableViewCell顯示問題
這是偉大的,但是,你可以詳細說明一些事情。首先,當我嘗試退出datepicker時出現此錯誤: - [UIBarButtonItem resignFirstResponder]:無法識別的選擇器,並且可以解釋如何將textfields文本設置爲用戶設置的日期。會不會像textField.text = ?? – Apollo
@Auser哎呀,請檢查我的'dismissPicker'代碼上的編輯。另外,我添加了一個新方法的代碼,以響應'UIControlEventValueChanged'以及在'UIDatePicker'上設置的代碼。 – Yazid
這真是太棒了。感謝您抽出寶貴時間來幫助我解決問題。真的很感激它。 – Apollo