`

iOS tableview自适应高度

 
阅读更多

一、用xcode构建项目,创建一个有tableView的视图,用纯代码的形式实现:

1、创建一个UIViewController类,定义一个UITableView,实现TableView的委托和数据源协议

  
#import <UIKit/UIKit.h>  
  
@interface TableViewController : UIViewController<UITableViewDataSource,UITableViewDelegate>{  
      
}  
  
@property (nonatomic,retain) UITableView *tableView;  
  
@end  

实现UITableView对象的初始化,声明一个tableData的数组对象用来保存tableView中得数据 

#import "TableViewController.h"  
  
@interface TableViewController (){  
    NSMutableArray *tableData;  //tableView数据存放数组  
}  
  
@end  
  
@implementation TableViewController  
  
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil  
{  
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];  
    if (self) {  
        tableData = [[NSMutableArray alloc] init];  
    }  
    return self;  
}  
  
- (void)viewDidLoad  
{  
    [super viewDidLoad];  
    [self initTableView];  
}  
  
//初始化tableView;  
-(void)initTableView{  
    CGRect frame = self.view.frame;  
    _tableView = [[UITableView alloc] initWithFrame:CGRectMake(frame.origin.x, frame.origin.y, frame.size.width, frame.size.height)];  
    //代理类  
    _tableView.delegate = self;  
    //数据源  
    _tableView.dataSource = self;  
    [self.view addSubview:_tableView];  
}  

 创建自定义的UITableViewCell类,声明需要用到的控件对象和方法:

#import <UIKit/UIKit.h>  
  
@interface TableViewCell : UITableViewCell{  
  
}  
  
//用户名  
@property(nonatomic,retain) UILabel *name;  
//用户介绍  
@property(nonatomic,retain) UILabel *introduction;  
//用户头像  
@property(nonatomic,retain) UIImageView *userImage;  
  
//给用户介绍赋值并且实现自动换行  
-(void)setIntroductionText:(NSString*)text;  
//初始化cell类  
-(id)initWithReuseIdentifier:(NSString*)reuseIdentifier;  
@end  

 初始化Cell的用户控件,实现方法:

#import "TableViewCell.h"  
  
@implementation TableViewCell  
  
-(id)initWithReuseIdentifier:(NSString*)reuseIdentifier{  
    self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier];  
    if (self) {  
        [self initLayuot];  
    }  
    return self;  
}  
//初始化控件  
-(void)initLayuot{  
    _name = [[UILabel alloc] initWithFrame:CGRectMake(71, 5, 250, 40)];  
    [self addSubview:_name];  
    _userImage = [[UIImageView alloc] initWithFrame:CGRectMake(5, 5, 66, 66)];  
    [self addSubview:_userImage];  
    _introduction = [[UILabel alloc] initWithFrame:CGRectMake(5, 78, 250, 40)];  
    [self addSubview:_introduction];  
}  
  
//赋值 and 自动换行,计算出cell的高度  
-(void)setIntroductionText:(NSString*)text{  
    //获得当前cell高度  
    CGRect frame = [self frame];  
    //文本赋值  
    self.introduction.text = text;  
    //设置label的最大行数  
    self.introduction.numberOfLines = 10;  
    CGSize size = CGSizeMake(300, 1000);  
    CGSize labelSize = [self.introduction.text sizeWithFont:self.introduction.font constrainedToSize:size lineBreakMode:NSLineBreakByClipping];  
    self.introduction.frame = CGRectMake(self.introduction.frame.origin.x, self.introduction.frame.origin.y, labelSize.width, labelSize.height);  
      
    //计算出自适应的高度  
    frame.size.height = labelSize.height+100;  
      
    self.frame = frame;  
}  
  
- (void)setSelected:(BOOL)selected animated:(BOOL)animated  
{  
    [super setSelected:selected animated:animated];  
  
}  
  
@end  

 

分享到:
评论

相关推荐

    iOS tableview里面嵌套tableview,自适应高度

    swift ,使用autolayout + storyboard 最外层tableview列表,cell里面嵌套了tableview,自适应内容,cell里的tableview不可滑动,内容全部显示,且文字分行显示,不用设置cell的高度直接可以自适应内容

    ios-自适应高度tableView表单.zip

    "ios-自适应高度tableView表单.zip" 提供了一个示例项目,旨在演示如何在iOS应用中创建一个能自适应高度的表格视图,这在处理表单或者包含多种不同类型内容的列表时特别有用。该项目的GitHub链接是,由开发者...

    ios-tableview高度自适应.zip

    `"ios-tableview高度自适应.zip"`这个压缩包文件显然与UITableView的自适应高度有关,特别提到了`"cell布局使用SDAutoLayout约束 简单方便快捷"`,这暗示我们将探讨如何使用SDAutoLayout来实现UITableViewCell的高度...

    tableview自适应cell高度

    在本文中,我们将深入探讨如何在iOS应用中实现tableView细胞的自适应高度,包括手动设置和iOS8之后的自动适应方法。 首先,我们来了解一下手动适应cell高度的方法。在传统的做法中,我们需要在`tableView:...

    ios-根据Masonry自动布局Cell自适应高度.zip

    这个“ios-根据Masonry自动布局Cell自适应高度.zip”文件提供了一个使用Masonry库来实现这个功能的例子。Masonry是一款强大的自动布局库,它使得在Swift或Objective-C中进行自动布局变得更为简洁。 Masonry的核心...

    tableViewCell 自适应高度

    在实现用户界面时,我们常常需要让UITableViewCell根据其内容自适应高度,以确保最佳的显示效果。`tableViewCell 自适应高度`这个话题,就是关于如何使UITableView的Cell能动态调整自身高度以容纳不同长度的内容。 ...

    UITableVIew 自适应高度实例

    总之,"UITableVIew 自适应高度实例"是一个实用的学习资源,它教你如何在iOS应用中创建自适应高度的表格视图,从而提供更优质的用户界面和体验。通过学习这个实例,开发者可以避免硬编码行高,使表格更加灵活且易于...

    ios-Cell自适应高度.zip

    "ios-Cell自适应高度.zip"这个压缩包提供的内容显然是关于如何让UITableViewCell根据其内容动态调整高度的示例代码。在本篇文章中,我们将深入探讨这个主题,了解如何实现自适应高度的UITableViewCell。 首先,`...

    ios-自适应cell高度.zip

    3. **自动布局(Auto Layout)**:为了使cell的内容能正确填充并自适应高度,需要设置好cell内部各个元素的约束。确保label或其他内容视图的约束能够根据内容自动调整大小。例如,设置label的约束为上下左右距离cell...

    iOS8 tableview uitableviewcell内容自适应

    2. **estimatedRowHeight** 和 `rowHeight` 属性:在UITableView中,我们可以通过设置这两个属性来启用自适应高度。`estimatedRowHeight` 是预估的行高,用于提高滚动性能;而`rowHeight` 设置为`...

    UITableview的cell自适应高度

    本篇将详细讲解如何通过纯代码实现UITableView的Cell自适应高度。 方法一:使用自动布局(Auto Layout) 1. 首先,确保你的Cell中所有的子视图都已经设置了约束。每个子视图应该有四个约束(上、下、左、右),...

    ios-自动布局 cell高度自适应.zip

    支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于做最简单易用的AutoLayout库。 (此图示例详见demo7) 只需要3部设置就可以实现多cell的tableview高度自适应。 用到的库:...

    ios-TableView嵌套webView自适应高度.zip

    这个“ios-TableView嵌套webView自适应高度.zip”项目就是针对这种情况提供的一种解决方案。 在iOS应用中,UITableView与UIWebView结合使用时,一个关键的问题是如何自适应地调整单元格的高度以适应网页内容的高度...

    ios-Masonry Cell 动态高度 自动布局 Autolayout.zip

    在iOS开发中,创建自定义表格视图Cell时,我们经常需要实现动态高度的功能,以适应不同内容的显示需求。`iOS-Masonry Cell 动态高度 自动布局 Autolayout.zip`这个压缩包中包含了一个名为`MASCellTest`的项目,它...

    ios-TableView Cell加载WebiView高度自适应.zip

    "ios-TableView Cell加载WebiView高度自适应.zip"提供的解决方案正是针对这个问题,它通过WKWebView与JavaScript的交互来实现Cell高度的动态自适应。 WKWebView是苹果推出的新一代Web视图控制器,取代了旧的...

    iOS 中让TableViewCell 根据内容自适应高度

    在iOS开发中,为了提供优秀的用户体验,经常需要对UITableView中的TableViewCell进行自适应高度设置,使得内容根据文字数量、图片大小等动态调整单元格的高度。这个过程中涉及到的主要知识点包括: 1. **Auto ...

    TableView高度自适应

    本篇文章将深入探讨如何实现TableView的高度自适应,包括为tableView设置自适应高度、自定义cell以及利用Masonry进行约束布局。 首先,我们要理解TableView的高度自适应是通过计算每个cell的高度来实现的。在默认...

    详解iOS tableViewCell自适应高度 第三发类库

    在iOS开发中,UITableView是展示数据列表常用的控件,而为tableViewCell设置自适应高度是一项常见且重要的任务。自适应高度允许cell根据其内容自动调整大小,以展示所有信息而无需手动设定固定高度。在本篇文章中,...

    ios-tableviewcell 输入内容实时刷新高度 自适应.zip

    然而,为了实现自适应高度,我们需要利用`UITableView`的`estimatedRowHeight`和`rowHeight`属性,以及`UITableViewDataSource`协议中的`tableView(_:heightForRowAt:)`方法。 1. **设置预估行高度...

    ios-TableViewCell动态输入 自适应高度 UITextView DynamicHeight.zip

    本项目“ios-TableViewCell动态输入 自适应高度 UITextView DynamicHeight.zip”正解决了这个问题,尤其适用于iOS 8.0及更高版本。 首先,我们要理解的是UITableViewCell的动态高度计算。在iOS 8.0之后,苹果引入了...

Global site tag (gtag.js) - Google Analytics