
技术点:UILabel的自动换行,自动换行的同时要自适应Frame大小。UITableView的行高自适应内容,实时调整高度。实现方法:UILabel的自动换行获取UILabel的frame大小获取UILabel的字体大小获取UILabel的文本内容根据上面的3部分数据,计算文本显示区域大小根据4计算的大小,实时改变UILabel的framecode如下:NSStringlabelStr=@“你好,这是UILabel的自动换行测试内容,主要实现多行数据的自动换行,自适应不同行数的数据”;CGSizelabelSize={0,0};labelSize=[labelStrsizeWithFont:[UIFontsystemFontOfSize:14]constrainedToSize:CGSizeMake(2000,5000)lineBreakMode:UILineBreakModeWordWrap];//14为UILabel的字体大小//200为UILabel的宽度,5000是预设的一个高度,表示在这个范围内
table view不会对所有行都生成CELL对象,展示时是重用的。当然如果你的行数不多,你可以不使用重用机制,为每行创建独立的CELL,并保存到自己的ARRAY,需要时自己遍历好了,不知道别的还有没有好的办法
在做tableView的时候,我们有时候需要根据cell的高度动态来调整,最近在网上看到一段代码不错,跟大家Share一下。
在
-(UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath )indexPath{
类中获取cell的高度:
CGSize boundSize = CGSizeMake(216, CGFLOAT_MAX);
celltextLabeltext = @"12345678900123456789";
celluserInteractionEnabled = NO;
celltextLabelnumberOfLines = 0;
CGSize requiredSize = [celltextLabeltext sizeWithFont:[UIFont systemFontOfSize:13] constrainedToSize:boundSize lineBreakMode:UILineBreakModeWordWrap];
CGRect rect = cellframe;
rectsizeheight = requiredSizeheight+5;
cellframe = rect;
这时候获取到了cell的高度,然后在
- (CGFloat)tableView:(UITableView )tableView heightForRowAtIndexPath:(NSIndexPath )indexPath {
类中改变cell的高度:
UITableViewCell cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];
NSLog(@"cell height %f",cellframesizeheight);
return cellframesizeheight;
这样以来cell的高度就根据cell里label的内容自动改变啦。
其主要出发点就是我有一个label,然后我要把这个label展示出来,我根据字体的大小还有行数来获取一个高度,这样cell的高度就有啦。
以上就是关于如何计算uilabel里面文字的行数全部的内容,包括:如何计算uilabel里面文字的行数、如何获取UITableView所有的cell、如何调整cell的大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)