首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除UIPickerView蓝光

删除UIPickerView蓝光
EN

Stack Overflow用户
提问于 2010-12-24 13:33:53
回答 1查看 2.1K关注 0票数 2

一段时间以来,当您使用UIPickerView委托时,我一直试图删除pickerView:viewForRow:forComponent:reusingView:中的蓝色高亮显示。

我相信这里的很多人都去过那里,想要删除UIPickerView中那个难看的蓝色亮点。

UIPickerView有一个UITableView --而是一个UIPickerTable,里面有细胞,你的UILabels/UIViews/UIImageViews或者其他的东西都在里面。从逻辑上讲,如果它是一个表视图,那么我们就可以访问单元格和setSelectionStyle:UITableViewCellSelectionStyleNone,对吗?错误。

UIPickerTable是API的一个私有类,不允许您在其中设置任何内容。

我已经在我的选择器中获得了所有的子视图

代码语言:javascript
复制
[[myPickerView subviews] objectAtIndex:someIndexValue];

所以我在pickerView:didSelectRow:pickerView:viewForRow:上试了这个

代码语言:javascript
复制
NSIndexPath *path = [[[myPickerView subviews] objectAtIndex:5] indexPathForSelectedRow];
[[[[myPickerView subviews] objectAtIndex:5] cellForRowAtIndexPath:path] setSelectionStyle:UITableViewCellSelectionStyleNone];

这是:

代码语言:javascript
复制
[[[myPickerView subviews] objectAtIndex:5] setSelectionStyle:UITableViewCellSelectionStyleNone];

他们都没用,因为这是隐私。给我这个错误:

*终止应用程序由于未识别的异常'NSInvalidArgumentException',原因:'-UIPickerTable setSelectionStyle::未识别的选择器发送到实例0x64479a0'*

我知道如何将view的帧设置为pickerView:rowHeightForComponent:的大小,然后执行以下操作:

代码语言:javascript
复制
label.UserInteractionEnabled = YES;

在返回pickerView:viewForRow方法之前。

但是它并没有真正删除高亮显示,它只是覆盖了,并删除了UIPickerView在单击某个项目时自动浏览的功能。

有人知道如何从带有一个UIPickerView UILabel/UIView/UIImageView 的中删除这个蓝色高亮显示吗?

我是,不是在谈论selectionIndicator。这是单击pickerView中的图像时出现的突出显示:

PS:这个pickerView没有selectionIndicator,是自定义的。然而,定制与问题无关。这个问题仅仅是因为在选择器的单元格中有一个继承表单UIView的对象,并且正在使用viewForRow

EN

回答 1

Stack Overflow用户

发布于 2011-01-08 10:33:21

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4526614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档