我正在为uiimage添加标签,然后在合适的视图上添加该图像。但它没有显示出来。有人可以帮忙吗?
这是我正在使用的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
}
//image which contains label
UIImageView *BgImage=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cell-bg.png"]];
BgImage.frame=cell.frame;
//label which will be on image
UILabel *NameLAbel=[[UILabel alloc]initWithFrame:CGRectMake(25, 5, 45, 45)];
NameLAbel.textColor=[UIColor blackColor];
if (indexPath.row==0) {
NameLAbel.text=@"Home";
}
else if (indexPath.row==1) {
NameLAbel.text=@"You";
}
else if (indexPath.row==2) {
NameLAbel.text=@"Contacts";
}
else if (indexPath.row==3) {
NameLAbel.text=@"Settings";
}
else {
NameLAbel.text=@"Sign Out";
}
NSLog(@"%@",NameLAbel.text);
[BgImage addSubview:NameLAbel];
//adding image on cell
[cell.contentView addSubview:BgImage];
[NameLAbel release];
[BgImage release];
return cell;
}
答案 0 :(得分:1)
我不确定您是否可以向UILabel
添加UIImageView
,虽然它们都是UIView
子类,但我认为imageview只会显示图片。
在将图像添加到视图后,尝试将标签添加到cell.contentView
。这应该会达到你所追求的效果。
要么{或创建UIView
同时包含UIImageView
和UILabel
答案 1 :(得分:1)
添加一些UI小部件作为UIImageView的子视图听起来真的很有问题。即使它现在有效,它可能在将来也不会起作用,我相信这打破了UIKit惯例。如果你想让一个视图看起来像是另一个视图的“一部分”,那么将它们作为兄弟姐妹直接放在cell.contentView中,如Amit所说,或者如果你想要剪裁,那么标签看起来就像被剪裁一样通过图像,创建一个UIView容器,启用该视图的“剪辑子视图”设置,并将UIImageView和UILabel作为兄弟姐妹放置在该容器UIView中。