• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - UIPickerView 动画隐藏和显示失败

[复制链接]
菜鸟教程小白 发表于 2022-12-13 04:05:57 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我的接口(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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap