我正在尝试使用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];
}
答案 0 :(得分:2)
是的,只需实现initWithCoder。
从代码动态创建UIView时,会调用initWithFrame。 从.nib文件加载的视图总是使用initWithCoder实例化,编码器负责从.nib文件中读取设置我习惯于在一个单独的方法中进行初始化,同时实现initWithCode和initWithFrame(以及我自己的初始化方法)
答案 1 :(得分:0)
尝试实施initWithCoder:
有时我遇到了IB和initWithFrame:
或者至少添加日志记录调用以查看是否执行了init方法