OStack程序员社区-中国程序员成长平台

标题: ios - UIPickerView 动画隐藏和显示失败 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 04:05
标题: ios - UIPickerView 动画隐藏和显示失败

我的接口(interface)文件中有这个:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
    <UIPickerViewDataSource, UIPickerViewDataSource>

// PickerView Array
@property (strong, nonatomic) NSArray *pickerNames;
@property (strong, nonatomic) NSArray *pickerValues;    
@property (strong, nonatomic) IBOutlet UIPickerView *picker;

- (IBAction)buttonSelectPicker;

@end

我的实现文件中有这个:

- (void)viewDidLoad
{
    [super viewDidLoad];

    // PickerView Array
    _pickerNames = @[@"Data1", @"Data2", @"Data3", @"Data4", @"Data5"];
    _pickerValues = @[@"val1", @"val2", @"val3", @"val4", @"val5"];
    _picker.frame = CGRectMake(0, 1000, 320, 216);
}

所有这些代码现在都可以在我的 iPod (iOS 6.1.3) 上完美运行,但实际上我想做更多的事情时遇到问题......它们是......

  1. 第一次加载应用时,UIPickerView 被隐藏(在屏幕区域之外)。我尝试通过添加这一行(在 viewDidLoad 上)但它不起作用。

    _picker.frame = CGRectMake(0, 1000, 320, 216);

  2. 然后当用户点击 buttonSelectPicker 按钮时,UIPickerView 就会出现。这行代码也不起作用:

    - (IBAction)buttonSelectPicker { [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:0.3]; _pickerviewContainer.frame = CGRectMake(0, 289, 320, 216); [UIView 提交动画]; }

  3. 当用户点击 UIPickerView 区域外的任何地方时,它会隐藏 UIPickerView。我有这段代码可以关闭键盘,但我不知道如何修改以关闭 UIPickerView :

    - (void)touchesBeganNSSet *)touches withEventUIEvent *)event { for (UIView * txt in self.view.subviews){ if ([txt isKindOfClass:[UITextField 类]]) { [txt resignFirstResponder]; } } }

谢谢...



Best Answer-推荐答案


您基本上是在重新创建 inputView 所做的事情。 UIKit 允许你定义任何自定义输入法,不仅仅是键盘,因此,你可以放置一个 UITextField,并设置 inputView 如下:

UIPickerView *picker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, 320, 162)];

picker.dataSource = self;
picker.delegate = self;

self.textField.inputView = picker;

(选择器也可以从 Nib 加载)

然后你使用普通的方法来处理文本字段

// Show keyboard/picker
[self.textField becomeFirstResponder]

// Dismiss keyboard/picker
[self.textField resignFirstResponder]

当文本字段成为第一响应者时,将显示选择器而不是键盘。我不知道这是否适合您的需求,但请考虑将其作为一种替代的、更清洁的方式。

关于ios - UIPickerView 动画隐藏和显示失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18778674/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4