如何更改UIPicker Color?苹果手机

时间:2009-08-18 21:56:18

标签: iphone uipickerview

我观察到UIPicker总是保持黑色,

有没有办法改变UIPicker&的颜色?这是选择指标吗?

感谢您的帮助。

6 个答案:

答案 0 :(得分:8)

我假设您要更改的是选择器边框的颜色,而不是用户与之交互的中心区域的颜色。在这种情况下,请执行以下操作:

创建4个“封面”UIViews并将它们直接添加到UIPicker,如:

[picker addSubview: coverView];

将这些视图放在拾取器边框的顶部,底部,左侧和右侧。 (您需要尝试使用尺寸。)将coverViews的backgroundColor设置为您想要的颜色,并调整alpha以从拾取器获取渐变阴影。同样,这可能需要一些实验。

另一种方法是创建一个覆盖整个选择器的大覆盖视图,并覆盖 - (UIView *)hitTest:(CGPoint)点withEvent:(UIEvent *)事件方法,以便您的封面视图不会拦截触摸意思是挑选者。

答案 1 :(得分:5)

您可以创建自己的自定义选择器,查看Apple网站上的UICatalog示例项目,它们会显示如何制作自定义选择器,它可能会对您有所帮助https://developer.apple.com/iphone/library/samplecode/UICatalog/

答案 2 :(得分:4)

按照Amagrammer的建议创建一个叠加图像,但不是将其作为图像添加到视图中,而是将其添加为按钮。然后禁用按钮上的交互,选择器将接收触摸事件,而无需拦截或覆盖任何内容。

答案 3 :(得分:1)

您也可以通过添加5个ImageView来完成此操作。第一个是大小“选择指标”,并将其准确地放在“选择指标”上。现在将imageView的alpha更改为0.2或任何你想要的,并根据您的选择添加图像/颜色。现在,您将看到自定义的“选择指标”。另外,你可以为边界做同样的事情。将每个imageView添加到pickerview的四个边,并使其大小等于边框大小。现在在ImageView中填充所需的图像/颜色。

答案 4 :(得分:0)

答案 5 :(得分:0)

您需要在其中创建一个带有UIImageView的新UIView,然后将其设置为该单元的附件。所以你需要创建一个像默认配件一样的图像,但是你想要的颜色。

UIView* accessoryView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 24, 50)];
UIImageView* accessoryViewImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"NEWIMAGE.png"]];
accessoryViewImage.center = CGPointMake(12, 25);
[accessoryView addSubview:accessoryViewImage];
[cell setAccessoryView:accessoryView];
[accessoryViewImage release];
[accessoryView release];

这里是改变文字颜色的解决方案

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {

CGRect imageFrame = CGRectMake(0.0, 0.0, 15, 15);
UIImageView *label = [[[UIImageView alloc] initWithFrame:imageFrame] **autorelease**];

if (row == 0)
{
    label.backgroundColor = [UIColor redColor];
}
if (row == 1)
{
    label.backgroundColor = [UIColor blueColor];
}
if (row == 2)
{
    label.backgroundColor = [UIColor blackColor];
}   
return label;
}