0

我有一个 uitableviewcell,它显示一个产品和 5 个或更少的徽标,具体取决于该产品是否可用某些功能。

例如,如果产品具有特征 a、b、c、d、e(在 abcde 上),则应显示:abcde

例如,如果产品具有特征 b、c 和 e(在 abcde 上),则应显示:bce

通过对不显示的徽标执行 removefromsuperview 并执行 setFrame:CGRectZero,我有:“empty space” bc “empty space” e (我不知道如何在此编辑器上创建空白空间)

我找不到获得我想要的东西的方法。如果该功能不可用,我可以使用灰色图标,但在需要时只想使用 3 个徽标

任何的想法 ?

4

2 回答 2

2

加入. ScrollView_ 如果是,UITableviewcelllogoimageView.imagehorizontallyscrollViewlogopresent

arrayoflogo 包含您要显示的徽标

 for(int i = 0; i< [arrayoflogo count];i++)
 {
        CGRect frame;
        frame.size = CGSizeMake(30, 30);
        frame.origin.x = (i * 30) + (i * 5) + 5;
        frame.origin.y = 5;

        UIImageView *aimgView = [[UIImageView alloc]initWithFrame:frame];
        [aimgView setTag:j];
        aimgView.contentMode = UIViewContentModeScaleToFill;
        //[aimgView setBackgroundColor:[UIColor redColor]];
        aimgView.image = [UIImage imageNamed:@"youImageName"]];
        aimgView.userInteractionEnabled = YES;
        [cell.scView addSubview:aimgView];
        [aimgView release]; 
 }
于 2012-08-14T12:22:34.087 回答
1

只需将 5 个 UIImageViews 添加到按钮并从左到右填充它们并将不需要的 ImageViews-Images 设置为 nil。

就像是:

myCell.ImageView1.Image = imageB;
myCell.ImageView2.Image = imageC;
myCell.ImageView3.Image = imageE;
myCell.ImageView4.Image = nil;
myCell.ImageView5.Image = nil;

您也可以使用数组。

NSMutableArray* arr = [[NSMutableArray allo] init];

if (logo1IsNeeded == true) [arr addObject:imageA];
if (logo2IsNeeded == true) [arr addObject:imageB];
if (logo3IsNeeded == true) [arr addObject:imageC];
if (logo4IsNeeded == true) [arr addObject:imageD];
if (logo5IsNeeded == true) [arr addObject:imageE];

for (int i = arr.count; i < 5; i++)
{
   [arr addObject: nil]; //Fill the remaining entries with nil
}

myCell.ImageView1.Image = [arr objectAddIndex:0];
myCell.ImageView2.Image = [arr objectAddIndex:1];
myCell.ImageView3.Image = [arr objectAddIndex:2];
myCell.ImageView4.Image = [arr objectAddIndex:3];
myCell.ImageView5.Image = [arr objectAddIndex:4];

如果代码中有任何错别字,请原谅。我是从心里做的。

于 2012-08-14T12:32:32.430 回答