Удалить UIimage из пользовательского представления uitablecell - PullRequest
0 голосов
/ 20 мая 2011

Я хочу удалить IBOutlet UIimage из определенных ячеек таблицы:

У меня есть пользовательская ячейка таблицы, содержащая изображение, метку, субтитр ...

cellIcon, cellHead, cellStandfirst

Некоторые ячейки не имеют изображения, поэтому я хочу, чтобы метка и субтитры расширялись назад, чтобы заполнить пространство, оставленное изображением (так же, как стандартный UITable ведет себя, если у него нет собственного класса ячеек)

В настоящее время я звоню

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

из tableViewController, который вызывает

- (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)];
}

, который работает нормально, но мне кажется, что представление таблицы по умолчанию должно удалить изображениевместо изменения размера меток.

Я попытался поместить варианты

[cellIcon removeFromSuperview];

в класс ячеек и

[cell.cellIcon remove];

в контроллере таблицы, но не могу получитьчто-нибудь для работы

Можно ли удалить изображение ячейки таблицы из определенных ячеек, чтобы размеры меток автоматически изменялись?

Ответы [ 4 ]

1 голос
/ 20 мая 2011

Вы просто попробуйте:

cell.cellIcon = nil;

Или:

[cell setCellIcon:nil];

Не знаю, сработает или нет, но вы просто попробуйте.

0 голосов
/ 01 марта 2012

Использовал этот код

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.
}
0 голосов
/ 22 мая 2011

Нет способа, чтобы подпредставление могло заполнить пустые места автоматически.Вам придется придерживаться вашего текущего метода.

Если вы собираетесь удалить пустой cellIcon из superview, вы должны помнить, что ячейки используются повторно.Поэтому вам придется повторно инициализировать его программно, если его nil.

0 голосов
/ 22 мая 2011

вы можете попробовать

cellIcon.hidden=YES;

собственность для этого ......

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...