未在UIView类中显示的子视图

时间:2009-04-15 21:29:46

标签: objective-c uiview subview

我正在尝试使用addSubview在代码中布置一些图像,但它们没有显示出来。

我创建了一个继承UIView的类(myUIView),然后将IB中的nib文件的类更改为myUIView。

然后我输入以下代码,但仍然是一个空白的灰色屏幕。

- (id)initWithFrame:(CGRect)frame {
    if (self = [super initWithFrame:frame]) {
        // Initialization code
        [self setupSubviews];
    }
    return self;
}

- (void)setupSubviews
{
    self.backgroundColor = [UIColor blackColor];

    UIImageView *black = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"black.png"]];
    black.center = self.center;
    black.opaque = YES;

    [self addSubview:black];

    [black release];
}

2 个答案:

答案 0 :(得分:2)

是的,只需实现initWithCoder。

从代码动态创建UIView时,会调用initWithFrame。 从.nib文件加载的视图总是使用initWithCoder实例化,编码器负责从.nib文件中读取设置

我习惯于在一个单独的方法中进行初始化,同时实现initWithCode和initWithFrame(以及我自己的初始化方法)

答案 1 :(得分:0)

尝试实施initWithCoder:有时我遇到了IB和initWithFrame:

的问题

或者至少添加日志记录调用以查看是否执行了init方法