ios - 类似微博列表,每一个UITableViewCell有一个图片,当下拉的时候,会有图片重叠.怎么去掉重叠的呢?
巴扎黑
巴扎黑 2017-04-17 11:39:59
[iOS讨论组]

类似微博列表,每一个UITableViewCell有一个图片,当下拉的时候,会有图片重叠.怎么去掉重叠的呢?

TableView:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString * ID = @"WeiboCustomCellIdentifier";

    [tableView registerClass:[WeiboCustomCell class] forCellReuseIdentifier:ID];
    WeiboCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
    MStatusItem *status = [_data_array objectAtIndex:indexPath.row];    
    [cell.screenNameLabel setText:status.user_screen_name];
    [cell.timeLabel setText:status.pubtime_str];
    [cell.weiboTextLabel setText:status.getPlainText];
    cell.userAvatarUrl = status.user_proimg;
    if(status.hasImage){
        cell.weiboImageUrl = status.tnpic;
    }else{
        cell.weiboImageUrl = @"";
        cell.weiboImageView.hidden = YES;
    }    
    return cell;
}

CustomTableViewCell:

- (void)setWeiboImageUrl:(NSString *)weiboImageUrl{
    if ([weiboImageUrl isEqualToString:@""] == NO && weiboImageUrl != nil){
        NSURL *imageURL = [NSURL URLWithString: weiboImageUrl];
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
            NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
            dispatch_async(dispatch_get_main_queue(), ^{
                CGSize textSize = [self.weiboTextLabel.text sizeWithFont:[UIFont systemFontOfSize:14.0f] constrainedToSize:CGSizeMake(self.frame.size.width - 10.0 * 3 - 60.0, 2000.0f)];
                float height = textSize.height + 20.0 * 3;
                NSLog(@"Height:%f", height);                
                self.weiboImageView = [[UIImageView alloc] initWithFrame: CGRectMake(65.0, height, 100, 124)];               
                UIImage *image = [[UIImage alloc]initWithData:imageData];
                self.weiboImageView.image = image;
                self.weiboImageView.contentMode = UIViewContentModeScaleAspectFit;
                self.userInteractionEnabled = NO;                                
                [self.contentView addSubview:self.weiboImageView];                
            });
        });
    }
}
巴扎黑
巴扎黑

全部回复(1)
阿神
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{ static NSString * ID = @"WeiboCustomCellIdentifier";

WeiboCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
if (nil == cell) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];
}
MStatusItem *status = [_data_array objectAtIndex:indexPath.row];
[cell.screenNameLabel setText:status.user_screen_name];
[cell.timeLabel setText:status.pubtime_str];
[cell.weiboTextLabel setText:status.getPlainText];
cell.userAvatarUrl = status.user_proimg;
if(status.hasImage){
    cell.weiboImageUrl = status.tnpic;
}else{
    cell.weiboImageUrl = @"";
    cell.weiboImageView.hidden = YES;
}
return cell;

}

- (void)setWeiboImageUrl:(NSString *)weiboImageUrl{
if ([weiboImageUrl isEqualToString:@""] == NO && weiboImageUrl != nil){
    NSURL *imageURL = [NSURL URLWithString: weiboImageUrl];
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
        NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
        dispatch_async(dispatch_get_main_queue(), ^{
            CGSize textSize = [self.weiboTextLabel.text sizeWithFont:[UIFont systemFontOfSize:14.0f] constrainedToSize:CGSizeMake(self.frame.size.width - 10.0 * 3 - 60.0, 2000.0f)];
            float height = textSize.height + 20.0 * 3;
            NSLog(@"Height:%f", height);
            self.weiboImageView = [[UIImageView alloc] initWithFrame: CGRectMake(65.0, height, 100, 124)];
            if (nil == self.weiboImageView) {
                self.weiboImageView = [[UIImageView alloc] initWithFrame:CGRectZero];
                [self.contentView addSubview:self.weiboImageView];
            }
            self.weiboImageView = [[UIImageView alloc] initWithFrame: CGRectMake(65.0, height, 100, 124)];
            UIImage *image = [[UIImage alloc]initWithData:imageData];
            self.weiboImageView.image = image;
            self.weiboImageView.contentMode = UIViewContentModeScaleAspectFit;
            self.userInteractionEnabled = NO;
        });
    });
}

}

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号