UIPickerView 行选择
Posted
技术标签:
【中文标题】UIPickerView 行选择【英文标题】:UIPickerView row selection 【发布时间】:2010-03-01 14:32:26 【问题描述】:我有一个包含两个组件的 UIPickerView。 当用户滚动每个组件直到达到所需值时,它工作正常。 但我希望它表现得像日历或时钟应用程序中的选择器。含义:当用户在其中一个组件中按下某个值时,我希望该组件自动将该行变为所选行(因此用户不必总是滚动,他/她也可以简单地选择该值他们想要)。
有人知道怎么做吗?
谢谢,
~叮当
【问题讨论】:
你想要一个 UIDatePicker (developer.apple.com/iphone/library/documentation/UIKit/…) 吗? 没有。我想要一个包含两个组件的自定义选择器... 【参考方案1】:这是标准的选择器行为,它应该自动工作。
如果您的选择器没有自动选择被点击的行,请尝试将您从选择器数据源中的viewForRow:
方法返回的视图的userInteractionEnabled
属性设置为NO。
【讨论】:
我使用带有 UILabel 的 UIView 作为 viewForRow 的返回值。我尝试为 UILabel 和 UIView 添加 userInteractionEnabled 但它似乎没有帮助。你能想到其他选择吗? 你能发布你的 viewForRow: 方法吗? if (component == 0) Style *curStyle = [self.styleArray objectAtIndex:row]; // 为当前部分创建视图 CGRect frame = CGRectMake(0, 0, 120, 46); UIView *view = [[UIView alloc] initWithFrame:frame]; // 添加部件名称 frame = CGRectMake(10, 0, 110, 46); UILabel *lbl = [[UILabel alloc] initWithFrame:frame]; lbl.text = curStyle.styleName; lbl.backgroundColor = [UIColor clearColor]; [查看 addSubview:lbl]; [磅释放]; view.userInteractionEnabled = YES;返回视图; 否则返回 [self.partsArray objectAtIndex:row]; 很抱歉,我之前遇到过类似的问题,并根据记忆发布了解决方案,但记住了一般方法并完全混淆了细节。查看更新的答案。以上是关于UIPickerView 行选择的主要内容,如果未能解决你的问题,请参考以下文章