我注意到UIPicker始终是黑色的,
有没有办法改变UIPicker和它的选择指示器的颜色?
谢谢你的帮助。
我注意到UIPicker始终是黑色的,
有没有办法改变UIPicker和它的选择指示器的颜色?
谢谢你的帮助。
我假设你只想改变选择器边框的颜色,而不是用户交互的中心区域的颜色。在这种情况下,请执行以下操作:
创建4个“覆盖”UIView并将它们直接添加到UIPicker中,如下所示:
[picker addSubview: coverView];
您可以创建自己的自定义选择器,查看苹果网站上的UICatalog示例项目,它们展示了如何制作自定义选择器,这可能会对您有所帮助。https://developer.apple.com/iphone/library/samplecode/UICatalog/
按照Amagrammer的建议,创建一个单一的覆盖图像,但不是将其作为图像添加到视图中,而是将其作为按钮添加。然后禁用按钮的交互,选择器将接收触摸事件,无需拦截或覆盖任何内容。
您可以通过添加5个ImageView来实现这一点。第一个是“选择指示器”的大小,并将其放置在“选择指示器”正上方。现在将该imageView的alpha更改为0.2或您想要的任何值,并根据您的选择添加图像/颜色。现在,您将看到自定义的“选择指示器”。同样的事情也适用于边框。将每个imageView添加到pickerview的四个侧面,并使其大小等于边框大小。现在填充您想要的图像/颜色。
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;
}