一段时间以来,当您使用UIPickerView委托时,我一直试图删除pickerView:viewForRow:forComponent:reusingView:中的蓝色高亮显示。
我相信这里的很多人都去过那里,想要删除UIPickerView中那个难看的蓝色亮点。
UIPickerView有一个UITableView --而是一个UIPickerTable,里面有细胞,你的UILabels/UIViews/UIImageViews或者其他的东西都在里面。从逻辑上讲,如果它是一个表视图,那么我们就可以访问单元格和setSelectionStyle:UITableViewCellSelectionStyleNone,对吗?错误。
UIPickerTable是API的一个私有类,不允许您在其中设置任何内容。
我已经在我的选择器中获得了所有的子视图
[[myPickerView subviews] objectAtIndex:someIndexValue];
所以我在pickerView:didSelectRow:和pickerView:viewForRow:上试了这个
NSIndexPath *path = [[[myPickerView subviews] objectAtIndex:5] indexPathForSelectedRow];
[[[[myPickerView subviews] objectAtIndex:5] cellForRowAtIndexPath:path] setSelectionStyle:UITableViewCellSelectionStyleNone];这是:
[[[myPickerView subviews] objectAtIndex:5] setSelectionStyle:UITableViewCellSelectionStyleNone];
他们都没用,因为这是隐私。给我这个错误:
*终止应用程序由于未识别的异常'NSInvalidArgumentException',原因:'-UIPickerTable setSelectionStyle::未识别的选择器发送到实例0x64479a0'*
我知道如何将view的帧设置为pickerView:rowHeightForComponent:的大小,然后执行以下操作:
label.UserInteractionEnabled = YES;在返回pickerView:viewForRow方法之前。
但是它并没有真正删除高亮显示,它只是覆盖了,并删除了UIPickerView在单击某个项目时自动浏览的功能。
有人知道如何从带有一个UIPickerView UILabel/UIView/UIImageView 的中删除这个蓝色高亮显示吗?
我是,不是在谈论selectionIndicator。这是单击pickerView中的图像时出现的突出显示:

PS:这个pickerView没有selectionIndicator,是自定义的。然而,定制与问题无关。这个问题仅仅是因为在选择器的单元格中有一个继承表单UIView的对象,并且正在使用viewForRow。
发布于 2011-01-08 10:33:21
https://stackoverflow.com/questions/4526614
复制相似问题