【问题标题】:how to change the background color in UIPickerView?如何更改 UIPickerView 中的背景颜色?
【发布时间】:2009-12-28 06:54:04
【问题描述】:

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

【问题讨论】:

    标签: ios objective-c iphone uipickerview


    【解决方案1】:

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

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

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


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

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

    【讨论】:

      【解决方案2】:

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

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

      返回空数组。

      【讨论】:

      • 它将在pickerview代表中提供子视图-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
      【解决方案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];
        

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • +1 用于 iOS7 更新。使用您的信息为列提供不同的背景很容易 - 我刚刚用 Photoshop 创建了一个合适的条纹背景。上下边界处有一些白色褪色。完毕!你可以在这里看到它:stackoverflow.com/questions/20887001
        猜你喜欢
        • 2021-12-27
        • 1970-01-01
        • 1970-01-01
        • 2011-11-11
        • 1970-01-01
        • 2010-11-01
        • 1970-01-01
        • 2016-04-08
        • 2018-02-13
        相关资源
        最近更新 更多