cell自动换行


cell自动换行

#import "HistoryMessageViewController.h"

#import "UITableView+FDTemplateLayoutCell.h"

#import "HistoryMessageCell.h"

#define FONT_SIZE 14.0f

#define CELL_CONTENT_WIDTH 320.0f

#define CELL_CONTENT_MARGIN 10.0f

#define ScreenWidth [UIScreen mainScreen].bounds.size.width

#define ScreenHeight [UIScreen mainScreen].bounds.size.height

#define FONT_NAME @"Heiti SC"

@interface HistoryMessageViewController ()<UIActionSheetDelegate>

{

NSMutableArray *myCells;// cell数组

}

@property (nonatomic, strong) NSMutableArray *feedEntitySections;

@property (nonatomic, assign) BOOL cellHeightCacheEnabled;

@property(nonatomic,strong)NSArray*  tableData;

@end

@implementation HistoryMessageViewController

- (void)viewDidLoad {

[super viewDidLoad];

[self loadBackItem];

self.title = @"历史评价";

self.tableData = @[

@" 中国网3月26日讯 据外媒报道,当地时间3月25日,法国总统奥朗德,德国总理默克尔、西班牙首相拉霍伊共同抵达德国之翼航空公司客机的失事地点。报道称,三位国家领导人抵达当地以后,与参加搜救的工作人员在临时指挥中心进行了会面。此外,法、德、西三国领导人在客机坠毁地点附近对在此次空难中的遇难者表示哀悼,并对参与搜救的消防队员表示了感谢。",

@"大量的文物流失,频频的文物破坏已成为中国文物保护工作的常年之痛。中国文物保护立法已经30多年,今天,除了相关部门对文物保护的漠视和不作为,我们剩下的只有那些越来越少的沉默的文物。",

@"当地时间2015年3月25日,乌克兰基辅,在记者、摄影师及一众高官的注视之下,乌克兰警方冲入一场电视转播的内阁会议现场,逮捕乌克兰紧急服务部部长Serhiy Bochkovsky及其副手Vasyl Stoyetsky,两人均被控“高层次”腐败。据乌克兰内政部长表示,被捕的两人涉嫌多付给包括俄罗斯石油巨头卢克石油公司在内的多家公司采购费用。",

@"四川峨眉山景区降近7年来最大雪",

@"萌物:伊犁鼠兔是世界珍稀动物之一。日前,这一天然萌物再次在中国新疆被发现。伊犁鼠兔,生活在天山山脉高寒山区,是中国新疆特有的一个物种。3月23日,实名认证微博“美国国家地理”发布一组有关伊犁鼠兔的照片,因其形象呆萌可爱,长相酷似泰迪,立即引起了众多网友的关注。23日中午,记者电话联系到新疆发现鼠兔第一人,新疆环境保护科学研究院副研究员、新疆生态学会副秘书长李维东,他义务跟踪保护鼠兔三十多年。李维东介绍,美国国家地理微博晒出的这组鼠兔照片,是他去年7月在天山精河县木孜克冰达坂布设红外线触发相机时摄到的。照片中的鼠兔,也是他时隔24年后再次拍摄到的珍贵镜头。"

];

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

}

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{

return 1;

}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

return self.tableData.count;

}

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

NSString *text = [_tableData objectAtIndex:[indexPath row]];

//

//   // CGSize constraint = CGSizeMake(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), 20000.0f);

//

////    CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:NSLineBreakByWordWrapping];

////

//

//    CGSize size =[text boundingRectWithSize:CGSizeMake(305*ScreenWidth/375,ScreenHeight) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:15*ScreenWidth/375]} context:nil].size;

//

//    CGFloat height = MAX(size.height, 44.0f);

//

//    return height + (CELL_CONTENT_MARGIN * 2);

//

//    static NSString *customCellIndentifier = @"HistoryMessageCell";

//

//    HistoryMessageCell *cell = (HistoryMessageCell *)[tableView dequeueReusableCellWithIdentifier:customCellIndentifier];

//

//

//    if(cell == nil){

//        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"HistoryMessageCell" owner:self options:nil];

//        cell = [nib objectAtIndex:0];

//    }

//设置点击没有变色

// cell.selectionStyle = UITableViewCellSelectionStyleNone;

//    cell.haolb.text=[self.tableData objectAtIndex:indexPath.row];

//    cell.haolb.lineBreakMode = NSLineBreakByWordWrapping;

//    cell.haolb.numberOfLines = 0;

//    [cell setNeedsUpdateConstraints];

//    [cell updateConstraintsIfNeeded];

//

//     CGSize cell =[text boundingRectWithSize:CGSizeMake(305*ScreenWidth/375,ScreenHeight) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:15*ScreenWidth/375]} context:nil].size;

// cell.bounds = CGRectMake(0.0f, 0.0f, CGRectGetWidth(tableView.bounds), CGRectGetHeight(cell.bounds));

//算出label的行数和高度

CGSize size =[text boundingRectWithSize:CGSizeMake(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), 99999.0f) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:FONT_SIZE]}context:nil].size;

//    [cell setNeedsLayout];

//    [cell layoutIfNeeded];

//

//    CGFloat height = [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;

//    height += 1;

//    return height;

CGFloat height = MAX(size.height, 44.0f);

//

return height + (CELL_CONTENT_MARGIN * 13);

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

static NSString *customCellIndentifier = @"HistoryMessageCell";

HistoryMessageCell *cell = (HistoryMessageCell *)[tableView dequeueReusableCellWithIdentifier:customCellIndentifier];

if(cell == nil){

NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"HistoryMessageCell" owner:self options:nil];

cell = [nib objectAtIndex:0];

}

//设置点击没有变色

cell.selectionStyle = UITableViewCellSelectionStyleNone;

cell.haolb.text=[self.tableData objectAtIndex:indexPath.row];

cell.haolb.lineBreakMode = NSLineBreakByWordWrapping;

cell.haolb.numberOfLines = 0;

[cell setNeedsUpdateConstraints];

[cell updateConstraintsIfNeeded];

return cell;

}

@end

时间: 2024-10-05 10:08:36

cell自动换行的相关文章

IOS TableView的Cell高度自适应,UILabel自动换行适应

原文链接 :http://blog.csdn.net/swingpyzf/article/details/18093959 需求: 1.表格里的UILable要求自动换行 2.创建的tableViewCell的高度会自动适应内容的高度 一.用xcode构建项目,创建一个有tableView的视图,用纯代码的形式实现: 1.创建一个UIViewController类,定义一个UITableView,实现TableView的委托和数据源协议 [objc] view plaincopyprint? /

IOS 开发中 TableView的文本Cell高度的自适应,UILabel自动换行适应

最后的运行效果: 需求: 1.表格里的UILable要求自动换行 2.创建的tableViewCell的高度会自动适应内容的高度 一.用xcode构建项目,创建一个有tableView的视图,用纯代码的形式实现: 1.创建一个UIViewController类,定义一个UITableView,实现TableView的委托和数据源协议 // //  TableViewController.h //  AdaptiveCell // //  Created by swinglife on 14-1-

UITableView cell中label自动换行和自定义label自动换行

换行的前提必须是有足够的高度 才能换 否则不显示超出部分 所以,在设置label换行的时候 要考虑cell的高度,cell的高度也要变化,废话不多说,来段代码: cell.label.text=[dict objectForKey:@"info"];     cell.label.numberOfLines=0; //可多行显示     cell.label.lineBreakMode=NSLineBreakByWordWrapping;//拆行 设置label的高度 [self ch

iOS-UI控件之UITableView(三)- 自定义不等高的cell

Storyboard_不等高 对比自定义等高cell,需要几个额外的步骤(iOS8开始才支持) 添加子控件和contentView之间的间距约束 设置tableViewCell的真实行高和估算行高 // 告诉tableView所有cell的真实高度是自动计算(根据设置的约束来计算) self.tableView.rowHeight = UITableViewAutomaticDimension; // 告诉tableView所有cell的估算高度 self.tableView.estimated

自定义不等高cell—storyBoard或xib自定义不等高cell

1.iOS8之后利用storyBoard或者xib自定义不等高cell: 对比自定义等高cell,需要几个额外的步骤(iOS8开始才支持) 添加子控件和contentView(cell的contentView)之间的间距约束(需要代码控制约束) 设置tableViewCell的真实行高和估算行高 // 以下两行代码就被苹果成为self0sizing技术,可惜只能在iOS8及其之后应用 // 告诉tableView所有cell的真实高度是自动计算(根据设置的约束来计算) self.tableVie

【转】UITableViewCell自适应高度 UILabel自适应高度和自动换行

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {    // 列寬    CGFloat contentWidth = self.tableView.frame.size.width;    // 用何種字體進行顯示    UIFont *font = [UIFont systemFontOfSize:13];       // 該行要顯示的內容    

开发进阶19_通过代码自定义Cell

//注册一个xib文件 //如果tableView通过@"cell"这个标志去缓存池中没有渠道可循环利用的cell,就会加载MyCell1.xib文件来创建cell(IOS5.0) [self.tableView registerNib:[UINib nibWithNibName:@"MyCell" bundle:nil] forCellReuseIdentifier:@"Cell"]; //如果cell是通过类文件创建的 //如果tableVi

IOS下 UILabel 如何自动换行

转自:http://zasoft.blog.163.com/blog/static/205215176201301414915700/ 背景: 相信很多朋友都遇到过,文本的内容长度不一,需要根据内容的多少来自动换行处理. 场景: 很多APP中评论,有的评论长,有的评论短,有的一行,有的多行. ? 下面以评论的实现为例来说说具体如何实现. ? 技术点: UILabel的自动换行,自动换行的同时要自适应Frame大小. UITableView的行高自适应内容,实时调整高度. 实现方法: UILabe

POI格式化Cell样式

通过一个实例演示怎样通过POI设置Excel单元格的边框.字体.颜色.大小.下划线.合并.对齐方式. Excel文件如下: Java代码   package my.excel; import java.io.FileOutputStream; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.Font;