Objective - C tableView自适应高度 & KVC (Key -Value-Coding)

来源:互联网 发布:任意矩阵的零次幂 编辑:程序博客网 时间:2024/04/29 07:50



///////////////////////  自适应   //////////////////////////////



根视图下

#pragma mark 设置tableView每行的高度

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{

    

            // 图片的自适应

    // 在这个方法里,主要要计算图片的尺寸,来设置tableview的行高

    UIImage *image = [UIImage imageNamed:self.picArr[indexPath.row]];

    // UIImage保存着实际图片的尺寸,UIImageView是我们看见的图片的尺寸都通过它来设置

    // 通过图片的实际尺寸和屏幕固定的宽进行等比例计算

   CGFloat rowHeight = self.view.frame.size.width * image.size.height / image.size.width;

    

  

    // 第二部分   文字的自适应

    // 计算文字的高度

    NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:14],NSFontAttributeNamenil];

    // 根据文本内容和文本的字体进行计算高度

    // 参数1:告诉系统,文本显示的最大范围

    CGRect rect = [self.ziArr[indexPath.rowboundingRectWithSize:CGSizeMake(self.view.frame.size.width0options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil];

    // 然后把图片的高和文本的高最为返回值返回

    return rowHeight + rect.size.height;

  

}





///////////////////////  KVC   //////////////////////////////

创建一对文件,继承于NSObject
.h下,写所有用到的属性
.m下,

// 这个方法是KVC里负责纠错的方法,只要key和属性名没有对应上,就会执行这个方法


- (void)setValue:(id)value forUndefinedKey:(NSString *)key{


    // 里面什么都不写

}












///////////////////////  自适应   //////////////////////////////



根视图下

#pragma mark 设置tableView每行的高度

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{

    

            // 图片的自适应

    // 在这个方法里,主要要计算图片的尺寸,来设置tableview的行高

    UIImage *image = [UIImage imageNamed:self.picArr[indexPath.row]];

    // UIImage保存着实际图片的尺寸,UIImageView是我们看见的图片的尺寸都通过它来设置

    // 通过图片的实际尺寸和屏幕固定的宽进行等比例计算

   CGFloat rowHeight = self.view.frame.size.width * image.size.height / image.size.width;

    

    

    

    // 第二部分   文字的自适应

    // 计算文字的高度

    NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:14],NSFontAttributeNamenil];

    // 根据文本内容和文本的字体进行计算高度

    // 参数1:告诉系统,文本显示的最大范围

    CGRect rect = [self.ziArr[indexPath.rowboundingRectWithSize:CGSizeMake(self.view.frame.size.width0options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil];

    // 然后把图片的高和文本的高最为返回值返回

    return rowHeight + rect.size.height;

  

}




///////////////////////  KVC   //////////////////////////////

创建一对文件,继承于NSObject
.h下,写所有用到的属性
.m下,

// 这个方法是KVC里负责纠错的方法,只要key和属性名没有对应上,就会执行这个方法


- (void)setValue:(id)value forUndefinedKey:(NSString *)key{


    // 里面什么都不写

}










0 0