簡體   English   中英

子類化的UIView不顯示添加到其中的UIImageViews

[英]Subclassed UIView not displaying UIImageViews added to it

因此,我有一個稱為CSImageViews(uiview的子類)的類,它實際上是一行UIImageViews,包含在單個子類UIView中。

我添加了一個像這樣的自定義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];

有什么想法嗎?

我的愚蠢錯誤。 在這個特定的子類UIView中,我有一個方法,每次顯示其父視圖控制器時都會調用該方法。 此方法實際上從視圖中刪除了所有子視圖...因此,當我在初始視圖中渲染uiimageviews時,我看不到它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM