开发者

When I used layoutSubviews method of UItableViewcell with category in my file,something disappeared

when I used layoutSubviews method of UItableViewcell with category, just like the code below

@implementation UITableViewCell (forimage)

- (void)layoutSubviews{
    [super layoutSubviews];
    self.imageView.frame = CGRectMake(0, 0, 50, 50);
}

@end

when I used the code below to draw the cells , the textLabel was disappeared ,anyone know why it be that~, and does that mean if I use layoutSubviews,I must write all the subviews what I need in the method?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIden开发者_JS百科tifier:CellIdentifier];

    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    RadioInfo *radioinfo = [radios objectAtIndex:indexPath.row];
    cell.textLabel.text = [NSString stringWithFormat:@"%@",radioinfo._name];

    if(!radioinfo._logo){
        if(self.tableView.dragging == NO && self.tableView.decelerating == NO){
            [self startPicDownload:radioinfo forIndexPath:indexPath];
        }

        cell.imageView.image = [UIImage imageNamed:@"1.jpg"];
    }
    else {
        cell.imageView.image = radioinfo._logo;
    }

    return cell;
}


What you want to do is add to the behaviour of UITableViewCell's layoutSubviews method, not replace it.

To properly add to the behaviour, subclass the cell and perform your own layout, as you have above but add a [super layoutSubviews] right at the top of your method to ensure that the cell's own basic layout is performed first.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜