Để có giải pháp thay thế xử lý UIPickerView và Trang tính hành động, hãy xem ActionSheetPicker
https://github.com/TimCinel/ActionSheetPicker
Nó đã được kích hoạt cocoapods. Nó xử lý tất cả các nút hủy và hoàn tất trên Bảng hành động. Các ví dụ trong dự án mẫu là rất tốt. Tôi chọn ActionSheetStringPicker, dễ dàng xử lý các tùy chọn chỉ dựa trên Chuỗi, nhưng API có thể xử lý hầu hết mọi thứ mà tôi có thể nghĩ đến.
Ban đầu tôi bắt đầu một giải pháp giống như câu trả lời được đánh dấu kiểm, nhưng tình cờ gặp dự án này và tôi mất khoảng 20 phút để tích hợp mọi thứ vào ứng dụng của mình để sử dụng, bao gồm cả việc sử dụng cocopods: ActionSheetPicker (~> 0.0)
Hi vọng điêu nay co ich.
Tải xuống dự án git và xem các lớp sau:
- ActionSheetPickerViewController.m
- ActionSheetPickerCustomPickerDelegate.h
Đây gần như là hầu hết các mã mà tôi đã thêm, cộng với các lần nhập * .h.
- (IBAction)gymTouched:(id)sender {
NSLog(@"gym touched");
[ActionSheetStringPicker showPickerWithTitle:@"Select a Gym" rows:self.locations initialSelection:self.selectedIndex target:self successAction:@selector(gymWasSelected:element:) cancelAction:@selector(actionPickerCancelled:) origin:sender];
}
- (void)actionPickerCancelled:(id)sender {
NSLog(@"Delegate has been informed that ActionSheetPicker was cancelled");
}
- (void)gymWasSelected:(NSNumber *)selectedIndex element:(id)element {
self.selectedIndex = [selectedIndex intValue];
//may have originated from textField or barButtonItem, use an IBOutlet instead of element
self.txtGym.text = [self.locations objectAtIndex:self.selectedIndex];
}
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
return NO; // Hide both keyboard and blinking cursor.
}