0

その製品で機能が利用可能かどうかに応じて、製品と 5 つ以下のロゴを表示する uitableviewcell があります。

たとえば、製品に機能 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

を追加ScrollViewUITableviewcellます。の場合はlogoimageView.image)を入力horizontallyしますscrollViewlogopresent

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 つの UIImageView を追加し、左から右に塗りつぶし、不要な 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 に答える