對於每個UIImageView,我想添加標籤子視圖到它。 這是我的類繼承的形式的UIImageViewObjective-C:添加子視圖只適用於一個視圖
-(instancetype)initWithFrame:(CGRect)frame
{
if (self=[super initWithFrame:frame]) {
self.categoryLabel=[[UILabel alloc]initWithFrame:CGRectMake(frame.origin.x, frame.origin.y, frame.size.width, 50)];
self.categoryLabel.textAlignment=NSTextAlignmentCenter;
self.categoryLabel.font=[UIFont systemFontOfSize:20];
self.categoryLabel.textColor=[UIColor whiteColor];
[self addSubview:self.categoryLabel];
NSLog(@"%@",self.subviews);
}
return self;
}
-(void)setModel:(HorizontalModel *)model
{
_model=model;
self.categoryLabel.text=self.model.category;
[self sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"XXXXX%@",self.model.imgURL]] placeholderImage:[UIImage imageNamed:@"obama"]];
}
這是我的視圖中的控制器的代碼。
-(void)addImage:(NSNotification *)notification
{
self.HArrayLists=notification.userInfo[@"array"];
for (int i=0; i<[self.HArrayLists count]; i++) {
JTImageView *imageView=[[JTImageView alloc] initWithFrame:CGRectMake(i*310, 0, 300, 200)];
imageView.model=[HorizontalModel restaurantsDetailWithDict: self.HArrayLists[i]];
[self.mediaScrollView addSubview:imageView];
}
self.mediaScrollView.contentSize=CGSizeMake(310*[self.HArrayLists count], 0);
}
事實證明,只有第一個imageView顯示一個標籤,而其餘的imageViews只顯示圖像。
您確定HArrayLists中的所有數據都包含所有條目的文本嗎?只要調試,你可以這樣做:imageView.categoryLabel.text = @「Test」;並註釋掉imageView.model =部分。很可能你的數據是@「」,所以沒有什麼可以顯示 – GeneCode
贊同Rocotilos;也考慮使用self.HArrayLists的-enumerateObjectsUsingBlock方法;它看起來更清潔 \t [self.HArrayLists enumerateObjectsUsingBlock:^(HArrayListsInst * OBJ,NSUInteger IDX,BOOL *停止){ \t}]; –
爲什麼你看到self.mediaScrollView高到0? –