无法将子视图添加到我的UIView中

时间:2013-04-23 15:41:52

标签: ios objective-c uiview subclass subview

屏幕上有UIView元素。它由IBOutlet radioButtonGroupView连接。我正在尝试向该元素添加子视图,但它无法正常工作。子视图从未添加。

这是我的代码:

-(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;
}

1 个答案:

答案 0 :(得分:0)

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

然后将子视图加载代码放在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];
    }

修改

您说您在self.radioButtonGroupView viewDidLoad上未获得IBOutlet的任何框架信息。这几乎是一个迹象,表明您的- (void)viewDidLoad { [super viewDidLoad]; //not really needed but it doesn't hurt NSLog (@"self.radioButtonGroupView: %@",self.radioButtonGroupView); [self.radioButtonGroupView setHidden:YES]; } 没有正确连接到InterfaceBuilder中的元素。您总是可以进行简单的测试:

IBOutlet

如果仍然显示 - 那么它根本就没有正确连接。 IB有它的方法。简单 删除radioButtonGroupView连接并重新连接它可能会起到作用。另外:您的UIView不是UIView,而是MyViewController.m的子类,请确保在您的.xib文件和类中正确定义了它的头文件在{{1}}。