如何在UIPickerView中更改背景颜色?

时间:2009-12-28 06:54:04

标签: ios objective-c iphone uipickerview

我想更改UIPickerView中的背景颜色,是否可以?

4 个答案:

答案 0 :(得分:6)

更新:一个简单的技巧是在某些子视图上设置alpha。哪一个具体取决于您拥有多少组件,但代码是:

[(UIView*)[[picker subviews] objectAtIndex:2] setAlpha:0.5f];

这将使表盘半透明并透过背景颜色显示。


设置backgroudColor似乎没有做任何事情。到目前为止我能做的最好的是设置单个组件行的背景颜色,这是无用的,因为组件的基色将保持白色。

理想情况下,我想设置每个组件的背景颜色(即拨号)。

答案 1 :(得分:3)

似乎iOS 4.2没有任何子视图......

NSLog(@" %@ ", [self.pickerView subviews]); 

返回空数组。

答案 2 :(得分:3)

终于成功了。我尝试用一​​个组件的选择器视图。

  1. 通过向导或代码将选取器视图背景颜色设置为清除颜色,如下所示:

    Picker1.backgroundColor = [UIColor clearColor];
    
  2. 为编号为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];
    
  3. 不要忘记在viewForRow方法中清除要发送到选择器视图的标签的背景颜色。

    lbl.backgroundColor = [UIColor clearColor];
    

答案 3 :(得分:1)

在iOS 7上,我只是在其后面放置一个自定义背景图像。没有必要改变其他任何东西。