2011-05-20 8 views
0

からUIimageを削除します。私は特定のテーブルのセルからIBOutlet UIimageを削除するカスタムuitablecellビュー

私は、画像を構成するカスタムテーブルセル、ラベル、字幕...

cellIcon、cellHeadを持っています、cellStandfirst

一部のセルにはイメージがありません。そのため、ラベルとサブタイトルをイメージの左スペースに塗りつぶします(カスタムセルクラスがない場合は標準のUITableと同じように動作します)

現在、私は正常に動作しますが、それはデフォルトのテーブルビューは、画像を削除するのではなく、ラベルのサイズを変更しなければならないことを私を打つ

- (void)shortCell:(float)myfloat; { 
    [cellHead setFrame:CGRectMake(
     CELL_CONTENT_MARGIN, 
     3.0f, 
     myfloat - (CELL_CONTENT_MARGIN * 2), 
     24.0f)]; 
    [cellStandfirst setFrame:CGRectMake(
     CELL_CONTENT_MARGIN, 
     25.0f, 
     myfloat - (CELL_CONTENT_MARGIN * 2), 
     34.0f)]; 
} 

を呼び出しtableViewController、から

[cell shortCell:cell.bounds.size.width]; 

私はセルクラスで

[cellIcon removeFromSuperview]; 

、およびテーブルビューコントローラで

[cell.cellIcon remove]; 

の入れてバリエーションを試みたが、

を動作するように何かを得ることができないでは除去することが可能です特定のセルからの表のセルイメージで、ラベルのサイズが自動的に変更されますか?

答えて

0
セルクラスに続いて、このコード

if (__what-test-is-needed__) { 
    [cell cellIcon:@"your_image.png"]; 

} else { 
    [cell cellIcon:nil]; 
    [cell shortCell:cell.bounds.size.width]; 
} 

を使用し

#define CELL_CONTENT_WIDTH 320.0f 
#define CELL_CONTENT_MARGIN 10.0f 

@implementation StoryCellViewController 

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { 

    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
     // Initialization code. 
    } 
    return self; 
} 



- (void)cellHead:(NSString *)_text;{ 
    cellHead.text = _text; 
    //NSLog(@"Width: %f", self.bounds.size.width); 
} 

- (void)cellIcon:(NSString *)_text;{ 
    cellIcon.image = [UIImage imageNamed:_text]; 
} 

- (void)cellStandfirst:(NSString *)_text;{ 
    cellStandfirst.text = _text; 


} 

- (void)shortCell:(float)myfloat; { 
    // NSLog(@"Width: %f", self.bounds.size.width); 
    // NSLog(@"Float: %f", myfloat); 
    [cellHead setFrame:CGRectMake(
           CELL_CONTENT_MARGIN, 
           4.0f, 
           myfloat - (CELL_CONTENT_MARGIN * 2), 
           24.0f)]; 
    [cellStandfirst setFrame:CGRectMake(
            CELL_CONTENT_MARGIN, 
            26.0f, 
            myfloat - (CELL_CONTENT_MARGIN * 2), 
            34.0f)]; 
} 

- (void)setSelected:(BOOL)selected animated:(BOOL)animated { 

    [super setSelected:selected animated:animated]; 

    // Configure the view for the selected state. 
} 
1

あなたはただ、私はそれが動作します知っているかいないが、あなただけしてみてください.....

ありがとういけない

cell.cellIcon = nil; 

それとも

[cell setCellIcon:nil]; 

を試してみてください....

+0

それが正常に動作していますか...? – SJS

+0

私はすでにそれを呼び出しています、それはただuimageviewに無画像(つまり画像なし)を配置しますが、uimageviewがそれ自身を割り当てた領域を削除しません – JulianB

0

お試しください

プロパティ......

0

サブビューが自動的に空白を埋める方法はありません。あなたは現在の方法に固執する必要があります。

superviewから空のcellIconを削除する場合は、セルが再利用されることに注意する必要があります。したがって、nilの場合はプログラムで再初期化する必要があります。

関連する問題