3

我想改变背景颜色UIPickerView,可以吗?

4

4 回答 4

6

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

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

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


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

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

于 2010-01-16T13:17:38.890 回答
3

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

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

返回空数组。

于 2011-05-02T07:37:43.087 回答
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];
    
于 2012-08-30T14:06:34.617 回答
1

在 iOS 7 上,我只是在它后面放了一个自定义背景图像。无需更改任何其他内容。

于 2013-11-04T20:46:05.933 回答