だから私はCSImageViews(uiviewのサブクラス)と呼ばれるクラスを持っています。これは本質的に単一のサブクラス化されたUIViewに囲まれたUIImageViewsの行です。
次のようなカスタム init メソッドを追加しました (node/yaml には uiimage 名データが含まれます)。
- (id)initWithFrame:(CGRect)frame withNode:(NSDictionary *)node
{
self = [super initWithFrame:frame];
if (self) {
_node = node;
_imageViewYAML = [node objectForKey:@"items"];
_imageViews = [self getImageViewsForItems:_imageViewYAML];
}
return self;
}
そして私のgetImageViewsforItemsはそうです(それらをすべてサブビューに追加します):
-(NSArray *)getImageViewsForItems:(NSArray *)items
{
NSMutableArray *ivs = [NSMutableArray arrayWithCapacity:[items count]];
for (int i = 0; i < [items count]; i++) {
NSDictionary *item = [items objectAtIndex:i];
NSString *type = [item objectForKey:@"type"];
NSString *name = [item objectForKey:@"name"];
UIImage *image = [UIImage imageNamed:name];
UIImageView *iv = [[UIImageView alloc] init];
iv.image = image;
iv.tag = i;
[ivs addObject:iv];
[self addSubview:iv];
}
return ivs;
}
このカスタム ビューをメイン ビューに追加しても、何も起こりません。
CSImageViews *imageViews = [[CSImageViews alloc] initWithFrame:frame withNode:node];
[view addSubview:imageViews];
しかし、この「csimageviews」コンテナーを新しい uiview に最初に追加すると、次のように表示されます。
CSImageViews *imageViews = [[CSImageViews alloc] initWithFrame:frame withNode:node];
UIView *v = [[UIView alloc] initWithFrame:frame];
[v addSubview:imageViews];
[view addSubview:v];
考え?