【问题标题】:change sub UIView background color更改子 UIView 背景颜色
【发布时间】:2013-02-22 04:13:42
【问题描述】:

我正在尝试使用此方法在我的ViewController 中添加子视图

- (void)viewDidLoad
{
    [super viewDidLoad];
    addCourse = [[UIView alloc]init];
    addCourse.backgroundColor = [UIColor redColor];
    [addCourse.layer setCornerRadius:50.0f];
    [addCourse.layer setMasksToBounds:YES];
}

addCourse 是我的subview,但背景颜色仍然是白色。我正在使用storyboard 并添加了subview 并将视图与viewcontroller 链接起来,我确实编写了IBOutlet 和属性并进行了合成,但我仍然找不到更改背景颜色的方法。

我怎样才能改变它?

【问题讨论】:

  • 您是如何将 addCourse 添加到 ViewController 中的?
  • 1.您没有设置框架 2.您还没有将子视图添加到主视图中!那你怎么得到呢?
  • 设置框架并将子视图添加到self.view。 addCourse.frame=CGRectMake(10.0,10.0,200.0,200.0); [self.view addSubview:addCourse];

标签: iphone ios6 xcode4.5 background-color


【解决方案1】:
addCourse = [[UIView alloc]initWithFrame:CGRectMake(x, y, w, h)];
addCourse.backgroundColor = [UIColor redColor];
[addCourse.layer setCornerRadius:50.0f];
[addCourse.layer setMasksToBounds:YES];

[self.view addSubview:addCourse];

【讨论】:

    【解决方案2】:

    看到我已经更新了你的代码(只是你需要设置视图的框架)并且我得到了结果

    请!以这种方式更新您的代码

    - (void)viewDidLoad
    {
        [super viewDidLoad];
        
        //custom view
        UIView *addCourse = [[UIView alloc]init];
        CGRect myViewframe = CGRectMake(10.0f, 90.0f, 100.0f, 100.0f);
        addCourse.frame=myViewframe;
        addCourse.backgroundColor = [UIColor redColor];
        [addCourse.layer setCornerRadius:50.0f];
        [addCourse.layer setMasksToBounds:YES];
        
        [self.view addSubview:addCourse];
    }
    

    这是结果屏幕

    【讨论】:

      【解决方案3】:

      如果您已经与 ViewController 链接,那么您只需从代码中删除以下行

      addCourse = [[UIView alloc]init];
      

      因为,它会创建子视图的新实例。

      【讨论】:

      • 我删除了那行,一切正常,谢谢
      【解决方案4】:

      正如我所见,您还没有将addCourse 添加到您的视图控制器中。将您的 viewDidLoad 方法替换为:

      - (void)viewDidLoad
      {
          [super viewDidLoad];
          addCourse = [[UIView alloc]init];
          addCourse.backgroundColor = [UIColor redColor];
          [addCourse.layer setCornerRadius:50.0f];
          [addCourse.layer setMasksToBounds:YES];
          //ADDED THIS LINE
          self.view = addCourse;
      }
      

      【讨论】:

      • 嗯?你的意思是 [self.view addSubview:addCourse]; ??
      猜你喜欢
      • 1970-01-01
      • 2014-09-25
      • 1970-01-01
      • 2017-05-30
      • 2011-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多