美文网首页IOSiOS学习开发
修改tableView中原生cell的imageView图片大小

修改tableView中原生cell的imageView图片大小

作者: Bestmer | 来源:发表于2016-08-22 20:55 被阅读364次

    前言

    在cell中有一个imageView属性,可以设置每一个cell左边显示的图片。而默认的图片大小是根据cell的高度而决定的,我们并不能直接通过改变imageView.frame属性来达到改变图片大小的目的,因为这是一个readonly属性。


    • 错误提示
    • 正常设置图片
      • 高度跟行高一样
    cell.imageView.image = [UIImage imageNamed:@"Dog4.jpg"];
    

    • 通过以下的代码来设置cell的imageView
      • 来实现改变image的大小
    UIImage *image = [UIImage imageNamed:@"Dog4.jpg"];
    CGSize imageSize = CGSizeMake(80, 80);
    UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0.0);
    CGRect imageRect = CGRectMake(0.0, 0.0, imageSize.width, imageSize.height);
    [image drawInRect:imageRect];
    cell.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsGetImageFromCurrentImageContext();
    

    最后

    注意先签<UITableViewDataSource>协议,然后设置代理,最后实现协议中下面这个方法

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
    
    • 完整代码
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
        static NSString *reusableIdentifier = @"cell";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:reusableIdentifier];
        //  如果cell为nil,代表没有可重用的cell,需要创建
        if (nil == cell) {
            cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:reusableIdentifier] autorelease];
        }
         //  subtitle样式,上方的label
        cell.textLabel.text = [NSString stringWithFormat:@"init : %ld", indexPath.row];
        //  subtitle样式,下方的label
        cell.detailTextLabel.text = [NSString stringWithFormat:@"Reusable : %ld", indexPath.row];
        //  设置image的大小
        UIImage *image = [UIImage imageNamed:@"Dog4.jpg"];
        CGSize imageSize = CGSizeMake(80, 80);
        UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0.0);
        CGRect imageRect = CGRectMake(0.0, 0.0, imageSize.width, imageSize.height);
        [image drawInRect:imageRect];
        cell.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsGetImageFromCurrentImageContext();
        return cell;
    }
    

    相关文章

      网友评论

        本文标题:修改tableView中原生cell的imageView图片大小

        本文链接:https://www.haomeiwen.com/subject/ixegsttx.html