ios UIPickerView 滚动太快

标签 ios objective-c scroll uitextfield uipickerview

我将 UIPickerViewUITextField 结合使用,将值输入到文本字段中。 pickerView 显示一系列数字,其中每个数字都相当于选择器 View 中的行。

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 1;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent: NSInteger)component
{
    return self.max + 1;
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    return [NSString stringWithFormat:@"%d", row];
}

当用户在选取器中选择一个值时,文本字段应反射(reflect)该值:

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:      (NSInteger)component
{
    self.quantityField.text = [NSString stringWithFormat:@"%d", row];
}

但是,我注意到如果我将选择器旋转得太快,传递给 didSelectRow 的行偶尔会与选择器中确定的行不匹配。关于为什么会发生这种情况以及如何防止这种情况有什么想法吗?

其中带有 6 的字段代表我的 UITextField。如您所见,选择器在 10 处结算。

我的完整设置如下:

我有一个带有许多自定义 UITableViewCellsUITableView。 每个单元格都有一个 UITextField,它由 self.quantityField 引用。

我设置了以下内容:

// pickerView represents the UIPickerView.
self.quantityField.inputView = self.pickerView;
UIToolbar *myToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0,_pickerView.frame.origin.y - 44, self.frame.size.width, 44)];

UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(inputAccessoryViewDidFinish)];
doneButton.tintColor = [UIColor clearColor];
[myToolbar setItems:[NSArray arrayWithObject: doneButton] animated:NO];

self.quantityField.inputAccessoryView = myToolbar;

为了确保在单击完成按钮时关闭选择器 View ,我实现了以下功能(添加为 doneButtonaction

- (void)inputAccessoryViewDidFinish
{
    [self.quantityField resignFirstResponder];   
}

每个选择器都设置为显示数字 0-10(11 行)。

最佳答案

i have added a repo of the same这工作得很好,猴子测试了它!

如果问题仍然存在,请根据您当前存在问题的应用程序对存储库进行更改,然后将进一步调查!

关于ios UIPickerView 滚动太快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22295401/

相关文章:

objective-c - 复制和序列化 Quartz 引用的最佳实践

javascript - 在新页面上,自动向下滚动到特定div

ios - 使用“使用Apple登录”出现“注册不完整”错误

ios - 为每个 View Controller 分别垂直定位 UINavigationBar 标题

ios - 追加数组 NSDictionary 时出错

ios - 使用 AFNetworking 2 将十六进制字符串作为数据发送到服务器

ios - 向方法添加@objc 标志时出现 Xcode 编译器错误

java - 使用 ScrolledComposite 的 setOrigin 方法

javascript - 当内部元素滚动位置达到顶部/底部时防止父元素滚动?

ios - 修复我的网络事件指示器