我想更改UIPickerView
中的背景颜色,是否可以?
答案 0 :(得分:6)
更新:一个简单的技巧是在某些子视图上设置alpha。哪一个具体取决于您拥有多少组件,但代码是:
[(UIView*)[[picker subviews] objectAtIndex:2] setAlpha:0.5f];
这将使表盘半透明并透过背景颜色显示。
设置backgroudColor似乎没有做任何事情。到目前为止我能做的最好的是设置单个组件行的背景颜色,这是无用的,因为组件的基色将保持白色。
理想情况下,我想设置每个组件的背景颜色(即拨号)。
答案 1 :(得分:3)
似乎iOS 4.2没有任何子视图......
NSLog(@" %@ ", [self.pickerView subviews]);
返回空数组。
答案 2 :(得分:3)
终于成功了。我尝试用一个组件的选择器视图。
通过向导或代码将选取器视图背景颜色设置为清除颜色,如下所示:
Picker1.backgroundColor = [UIColor clearColor];
为编号为0,1和3的选取器视图子视图将alpha值设置为0.0f。(不知道为什么有子视图2的想法)。在拾取器视图的第一个加载数据之后通过代码执行,如下所示(如果在DidViewLoad中执行此操作,则会抛出异常)。
[(UIView*)[[Picker1 subviews] objectAtIndex:0] setAlpha:0.0f];
[(UIView*)[[Picker1 subviews] objectAtIndex:1] setAlpha:0.0f];
[(UIView*)[[Picker1 subviews] objectAtIndex:3] setAlpha:0.0f];
不要忘记在viewForRow方法中清除要发送到选择器视图的标签的背景颜色。
lbl.backgroundColor = [UIColor clearColor];
答案 3 :(得分:1)
在iOS 7上,我只是在其后面放置一个自定义背景图像。没有必要改变其他任何东西。