【问题标题】:Changing Backgroundcolor of the UIView through code intead of XIB in ios通过ios中XIB的代码更改UIView的Backgroundcolor
【发布时间】:2011-12-21 19:45:11
【问题描述】:

我创建了一个基于窗口的项目,然后我添加了一个带有 xib 的新视图控制器,用于检查用户界面,然后通过进入 xib,我对视图进行了一些自定义,我添加了一些按钮并更改了背景颜色,

但是现在我想通过代码而不是通过xib来改变视图的背景色,

所以我在我的

中尝试了这个
-(void)viewDidLoad
{
    UIColor *myColor = [UIColor colorWithRed:(128.0 / 255.0) green:(90.0 / 255.0) blue:(200.0 / 255.0) alpha: 1];
    self.view.backgroundcolor = mycolor;

}

但没有发生任何变化,所以请朋友们帮帮我

感谢和问候 兰吉特

【问题讨论】:

  • 您尝试过 [UIColor redColor] 之类的方法并成功了吗?
  • 我尝试了这段代码,但它不起作用,因为颜色被分配给了 myColor,而背景颜色被设置为 mycolor。案例差异。我知道这已经快 17 个月大了,所以希望你能解决它。一旦我改变了这个,我得到了一个漂亮的紫色

标签: ios objective-c uiview interface-builder xib


【解决方案1】:

这就是我解决问题的方法: 您必须将 XIB 文件的视图设置为默认值,如果不将其更改为默认值,您将无法更改设置的原始颜色的背景颜色。

例如,如果您将背景颜色设置为红色,即使您以编程方式对其进行更改,它也会保持读取状态,不仅如此,view.layer.cornerRadius 之类的内容也无法正常工作。

所以基本上将XIB文件中视图的背景颜色更改为默认值并以编程方式设置它。

【讨论】:

    【解决方案2】:

    我遇到了类似的问题,我想我知道原因。您在viewDidLoad 中设置backgroundColor。我发现当代码到达viewDidAppear: 时,我对背景颜色所做的任何更改都会被删除。

    如果您将设置移至viewDidAppear:,它应该可以工作。

    或者,您可以让它在主线程中设置颜色。

    [[NSOperationQueue mainQueue] addOperationWithBlock:
     ^{
         [UIColor colorWithRed:(128.0 / 255.0) green:(90.0 / 255.0) blue:(200.0 / 255.0) alpha: 1];
     }];
    

    【讨论】:

      【解决方案3】:

      您输入的内容是正确的。它应该工作。但是我可以添加一些更正 - 定义宏,它可以很容易地指定颜色 -

      #define RGB(r, g, b) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1]
      #define RGBA(r, g, b, a) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:a]
      
      [self.view setBackgroundColor: RGB(135, 182, 44)]; //will give a UIColor objct
      

      【讨论】:

      • 嘿 srikar,谢谢你的宝贵信息,但我的代码不起作用,,它显示了我通过 xib 设置的背景颜色
      【解决方案4】:

      您的代码一定有其他问题,这是解决问题的方法。尝试用 NSLog 打印 self.view,它是一个有效的对象吗?你确定代码被调用了吗?该视图真的在视图层次结构中吗?

      【讨论】:

      • 嘿,darren,当我通过 xib 设置颜色时,它会发生变化,但是当我尝试通过代码进行设置时……它不起作用……它是一个有效的项目……我尝试打印这些值在 xib 中..我得到正确的 rgb 值,但颜色不会改变
      猜你喜欢
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      • 1970-01-01
      • 2014-08-13
      • 1970-01-01
      • 1970-01-01
      • 2011-06-21
      • 2017-10-29
      相关资源
      最近更新 更多