gpt4 book ai didi

iphone - 带有 2 个组件委托(delegate)的 uipickerview

转载 作者:行者123 更新时间:2023-12-03 21:03:21 26 4
gpt4 key购买 nike

我有以下带有 2 个组件的选择器代码:

- (void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row inComponent:(NSInteger)component {
if (component == 0) {
NSLog(@"first");
}
else
{
NSLog(@"second");
}
}

问题是当用户尝试先滚动组件 0 并等待其完全停止之前,然后同时滚动组件 1。

然后我将只有“第二”的控制台日志。所以看起来第一个事件被第二个事件覆盖了。

有没有一种方法可以让我们等待选择器滚动事件自行完成?

谢谢。

最佳答案

当我尝试让两个组件的 UIPickerView 工作时,我遇到了同样的问题。正如有人建议的那样,不要使用 if 语句。

而是这样做:

- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
self.valueA = [self.valuePickerView selectedRowInComponent:0];
self.valueB = [self.valuePickerView selectedRowInComponent:1];

self.valueLabel.text = [NSString stringWithFormat:@"%i:%i", self.valueA, self.valueB];
}

当然,如果您要查找数组的元素,只需使用“objectAtIndex:selectedRowInComponent:0”

<小时/>

不要这样做:

<罢工>

<罢工>
- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
if(component == 0){
self.valueA = ...;
}
else if (component == 1){
self.valueB = ...;
}

self.valueLabel.text = [NSString stringWithFormat:@"%i:%i", self.valueA, self.valueB];
}

<罢工>

希望这可以帮助其他遇到此问题的人。

关于iphone - 带有 2 个组件委托(delegate)的 uipickerview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11615346/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com