2013-04-23 40 views
0

我在屏幕上有一个UIView元素。它通过IBOutletradioButtonGroupView连接。我想添加一个子视图到该元素,它不工作。子视图永远不会被添加。无法添加子视图到我的UIView

这里是我的代码:

-(id) initWithCoder:(NSCoder *)aDecoder 
{ 
    self = [super initWithCoder:aDecoder]; 


    UIView *subView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; 
    subView.backgroundColor = [UIColor yellowColor]; 

    [self.radioButtonGroupView addSubview:subView]; 

    return self; 
} 
+0

因为我的UITableView包含在一个nib文件中。 initWithCoder方法确实被调用,但子视图永远不会被添加。 – 2013-04-23 15:46:15

+6

'radioButtonGroupView'目前为零。 – samfisher 2013-04-23 15:48:04

+0

那么,我认为我应该在视图控制器中做到这一点? – 2013-04-23 15:50:38

回答

0

你可能会更好,如果你做这个元素的(而不是UIView)一UIViewController一个子类。

然后把子视图加载代码放在viewDidLoad方法里面。

- (void)viewDidLoad 
    { 
     [super viewDidLoad]; //not really needed but it doesn't hurt 

     UIView *subView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; 
     subView.backgroundColor = [UIColor yellowColor]; 

     [self.radioButtonGroupView addSubview:subView]; 
    } 

编辑:

你说你不要在你的viewDidLoad得到self.radioButtonGroupView任何帧的信息。这几乎是某种迹象表明您的IBOutlet未正确连接到InterfaceBuilder中的元素。你总是可以做一个简单的测试:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; //not really needed but it doesn't hurt 

    NSLog (@"self.radioButtonGroupView: %@",self.radioButtonGroupView); 

    [self.radioButtonGroupView setHidden:YES]; 
} 

如果它仍然显示 - 那么它只是没有正确连接。 IB有它的方法。简单的 删除IBOutlet连接并重新连接它可能会诀窍。另外:你的radioButtonGroupView不是UIView,而是UIView的一个子类,请确保它的头文件被导入到你的MyViewController.m文件中,并且在.xib中正确定义了类。

+0

如果我在视图控制器中使用它,那么self.radioButtonGroupView.frame.origin.x和y以及宽度和高度一切返回0. – 2013-04-23 15:57:21

+0

最有可能的一个与IB插座的连接丢失或放错位置。 – 2013-04-23 15:58:37

+0

它已连接!我总是有这个问题,在我看来,控制器我无法获得IB元素的当前坐标。 – 2013-04-23 15:59:46