0

我正在尝试使用 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];
}
4

2 回答 2

2

是的,只需实现 initWithCoder。

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

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

于 2012-11-13T12:57:16.493 回答
0

尝试实施initWithCoder:有时我遇到了 IB 问题,并且initWithFrame:

或者至少添加一个日志调用以查看您的 init 方法是否已执行

于 2009-04-15T21:33:18.297 回答