0

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

1 回答 1

0

如果您将此元素设为 a 的子类UIViewController(而不是 a 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没有正确连接到 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.

于 2013-04-23T15:53:05.110 回答