如何在UIPickerView中进行选择时删除蓝色突出显示

时间:2011-05-26 07:08:12

标签: iphone uipickerview highlight

当我在修改后的选择器视图中选择一个单元格时,会出现蓝色背景颜色。 我见过的所有其他踏板都没有给我一个好的答案。 有人有解决方案吗?

4 个答案:

答案 0 :(得分:3)

pickerView.showsSelectionIndicator = NO;

答案 1 :(得分:0)

只需将UITableViewCell selectionStyle属性设置为UITableViewCellEditingStyleNone

cell.selectionStyle = UITableViewCellEditingStyleNone;

答案 2 :(得分:0)

我在选择器视图的顶部添加了工具栏,并添加了自定义按钮作为工具栏的子视图,并且选取器视图和工具栏都被添加为主视图的子视图,因此您可以处理它。

答案 3 :(得分:0)

我遇到过这个。让我们详细了解一下。要创建自定义选择器视图,请创建自定义UIView类,例如:

@interface TimeAroundView : UIView 
{
    NSString *title;
    UIImage *image;
}
@property (nonatomic, retain) NSString *title;
@property (nonatomic, retain) UIImage *image;
@end

然后在您的自定义选择器视图控制器中创建一些容器,例如NSArray,它将获取您想要在选择器视图中表示的所有TimeAroundView对象。所以,对于你必须做的每个对象

timeAroundViewObject.userInteractionEnabled = NO;

我认为 - (id)init是填充容器的最佳位置,所以你得到这样的东西:

- (id)init
{
    self = [super init];
    if (self) {
        // create the data source for this custom picker
        NSMutableArray *viewArray = [[NSMutableArray alloc] init];

        TimeAroundView *earlyMorningView = [[TimeAroundView alloc] initWithFrame:CGRectZero];
        earlyMorningView.title = @"Early Morning";
        earlyMorningView.image = [UIImage imageNamed:@"12-6AM.png"];
        earlyMorningView.userInteractionEnabled = NO;
        [viewArray addObject:earlyMorningView];
        [earlyMorningView release];

        TimeAroundView *lateMorningView = [[TimeAroundView alloc] initWithFrame:CGRectZero];
        lateMorningView.title = @"Late Morning";
        lateMorningView.image = [UIImage imageNamed:@"6-12AM.png"];
        lateMorningView.userInteractionEnabled = NO;
        [viewArray addObject:lateMorningView];
        [lateMorningView release];

        // ....  (more of objects)

        self.customPickerArray = viewArray;
        [viewArray release];
    }

    return self;
}

在你的pickerView:viewForRow:forComponent:reusingView:你只需从数组返回适当的元素。 这对我有用。