labelmax调整车辆环保铭牌位置置

labelview标签打印浓度可以调吗?可以的话怎么调?打印机用的DateMAX_百度知道Flex Label自动截取、自动换行
label.maxDisplayedLines=0; & & &// 默认多行显示,不截取
label.maxDisplayedLines=1; & & //任意整数,显示单行文本,自动截取(...)
label.maxDisplayedLines=2; & & //撑满label,可多行,显示不了的截取(...)&
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'根据字数多少改变label大小_百度知道Label Matrix 使用说明2_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Label Matrix 使用说明2
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢针对ios 6.0+ 使用autolayout 来布局,需要注意的地方很多。
要实现的效果
一般titleLabel 仅显示一行标题,高度为固定。
imageview 大小也为固定。
detailLabel 宽度固定,但高度根据文本动态调整。&
cell 底部拒imageview 的底部以及detailLabel 底部高度都是大于等于20。
当detailLabel文字很少时,cell底部拒imageview底部维持20,这时detaillabel底部距cell 底部大于20.&
当detailLabel文字很多时,cell底部距imageview底部超过20,与detailLabel底部高度维持20.
storyboard上的准备工作&
注意将detailLabel numberOfLines 设为0
建好cell自定义AutoCell 类,关联好控件,事先准备好一些数据源
&&&&nameArray&=&[NSMutableArray&arrayWithObjects:@"蜗壳",@"AI",@"大詹皇",nil];
&&&&imageArray&=&[NSMutableArray&arrayWithObjects:@"u=,&fm=90&gp=0.jpg",@"u=,&fm=21&gp=0.jpg",@"u=&fm=21&gp=0.jpg",&nil];
&&&&descriptionArray&=&[NSMutableArray&arrayWithObjects:@"蜗壳打球好潇洒,好飘逸,铁王之王",@"AI,史上最矮状元,无冕之王,crossover简直厉害,观赏性强,永远的MVP!!!!",@"最年轻的一万分先生,MVP,奥布莱恩杯,效率之王,天之骄子,全宇宙最强的球员没有之一,强突暴扣身体棒,发际线又高了,关键时刻又耸了,带领骑士夺冠吧,虽然看起来还没戏!!!!!!",&nil];
实现tableview的委托方法
//numberOfRows
-(NSInteger)tableView:(UITableView&*)tableView&numberOfRowsInSection:(NSInteger)section
&&&&return&3;
//cellForRow
-(UITableViewCell*)tableView:(UITableView&*)tableView&cellForRowAtIndexPath:(NSIndexPath&*)indexPath
&&&&AutoTableViewCell&*cell&=&(AutoTableViewCell*)[tableView&dequeueReusableCellWithIdentifier:@"autoCell"];
&&&&[cell.titleLabel&setText:nil];
&&&&[cell.titleLabel&setText:[nameArray&objectAtIndex:indexPath.row]];
&&&&[cell.descriptionLabel&setText:nil];
&&&&[cell.logoImageView&setImage:[UIImage&imageNamed:[imageArray&objectAtIndex:indexPath.row]]];
&&&&[cell.descriptionLabel&setText:[descriptionArray&objectAtIndex:indexPath.row]];
&&&&return&
先不实现HeightForRow方法,直接运行,发现ios7,ios8上都没有得到想要的效果
IT'S SO BAD!!!
核心部分,HeightForRow方法实现
-(CGFloat)tableView:(UITableView&*)tableView&heightForRowAtIndexPath:(NSIndexPath&*)indexPath
&&&&static&AutoTableViewCell&*cell&=&
&&&&static&dispatch_once_t&onceT
&&&&//只会走一次
&&&&dispatch_once(&onceToken,&^{
&&&&&&&&cell&=&(AutoTableViewCell*)[tableView&dequeueReusableCellWithIdentifier:@"autoCell"];
&&&&//calculate
&&&&CGFloat&height&=&[cell&calulateHeightWithtTitle:[nameArray&objectAtIndex:indexPath.row]&desrip:[descriptionArray&objectAtIndex:indexPath.row]];
&&&&return&
具体的计算高度方法是现在自定义cell类中
-(CGFloat)calulateHeightWithtTitle:(NSString*)title&desrip:(NSString*)descrip
&&&&//这里非常重要
&&&&CGFloat&preMaxWaith&=[UIScreen&mainScreen].bounds.size.width-108;
&&&&[self.detailLabel&setPreferredMaxLayoutWidth:preMaxWaith];
&&&&[self.titleLabel&setText:title];
&&&&//这也很重要
&&&&[self.detailLabel&layoutIfNeeded];
&&&&[self.detailLabel&setText:descrip];
&&&&[self.contentView&layoutIfNeeded];
&&&&CGSize&size&=&[self.contentView&systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
&&&&//加1是关键
&&&&return&size.height+1.0f;
几大需要注意的地方
首先说为什么要设置 PreferredMaxLayoutWidth, 表示label的最大的布局宽度,label显示多少行与它的宽度肯定有关,所有这里要设置正确的宽度,但这里有点坑的地方
这是storyboard 上detailLabel 的该属性,默认是没有勾选的(automatic)表示系统自动计算最大布局宽度,但是查看官方文档,你会发现自动计算只有在ios8中才会有效果,低于ios8不会自动计算。这时你可能会说:那把它勾上吧!!!
如图,勾上之后你发现显示的是492,这是什么意思?这个数字是当前使用的storyboard 的宽度减去label到两边界的绝对距离。xcode6 为大尺寸storyboard 宽度600 ,减去 detailLabel 距左边界98,减去距右边界10,刚好492.
但是这样对吗?很明显不对,iphone 屏幕宽度不是已经有3种宽度了么?320、375(iphone6)、414(plus)
所以600很明显不对,应该用当前运行的宽度来减去108,所以这里勾不勾都是错,干脆不勾了直接代码算吧....
CGFloat&preMaxWaith&=[UIScreen&mainScreen].bounds.size.width-108;
关于layoutIfNeeded到底是干嘛的,我也是一知半解,只知道不加效果出不来,打算之后再去查阅...
加1是关键&
[self.contentView&systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
return&size.height+1.0f;
这里size.height 实际上是我们要的contentview 的高度,但是我们如果直接将这个高度返回,就赋给了cell的高度,但是由于cell 分界线的原因,cell的高度比contentview高度多1,所以这里加1再返回。不要小看1像素,少了它效果还真就出不来!!!!
注意了这些,我们再运行,发现得到了想要的效果,切换模拟器,也没问题。
在ios6.0上测试
没有6.0的模拟器了,找了台6.0的真机,测试后效果如图
detailLabel的高度始终没有改变,维持在一行,但是可以发现cell的高度是对的,这似乎说明heightforrow方法没问题,那detailLabel为何没有自动拉伸呢?
再次检查了代码,原来问题出在cellforrow方法中,因为每个cell上的detailLabel的高度要拉伸就应该给每个detailLabel设置最大布局宽度:preferredMaxLayoutWidth。之前做的仅仅只是在heightforrow里面的得到那个用来计算的cell设置过。所以加了几句代码
-(UITableViewCell*)tableView:(UITableView&*)tableView&cellForRowAtIndexPath:(NSIndexPath&*)indexPath
&&&&AutoTableViewCell&*cell&=&(AutoTableViewCell*)[tableView&dequeueReusableCellWithIdentifier:@"autoCell"];
&&&&[cell.titleLabel&setText:nil];
&&&&[cell.titleLabel&setText:[nameArray&objectAtIndex:indexPath.row]];
&&&&//补上的几句,给用来显示的DetailLabel&设置最大布局宽度
&&&&CGFloat&preMaxWaith&=[UIScreen&mainScreen].bounds.size.width-108;
&&&&[cell.detailLabel&setPreferredMaxLayoutWidth:preMaxWaith];
&&&&[cell.detailLabel&layoutIfNeeded];
&&&&[cell.detailLabel&setText:nil];
&&&&[cell.logoImageView&setImage:[UIImage&imageNamed:[imageArray&objectAtIndex:indexPath.row]]];
&&&&[cell.detailLabel&setText:[descriptionArray&objectAtIndex:indexPath.row]];
&&&&return&
再次运行,可以看到在ios6中也得到了想要的效果,
IT'S perfect!!!
总之,研究了几天布局,发现ios好坑,各种陷阱,好在查阅了中外各种资料,最终还是实现了效果。
项目源码:
啥问题啊?
引用来自“Carson6931”的评论啥问题啊?ios7下不能自适应呢
问题解决了么?
CGSize size = [self.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
//加1是关键
return size.height+1.0f;
源码地址放博客最后了,需要的话去看看
引用来自“Carson6931”的评论源码地址放博客最后了,需要的话去看看恩恩 ,谢谢作者啦!
引用来自“Carson6931”的评论源码地址放博客最后了,需要的话去看看引用来自“moonclock”的评论恩恩 ,谢谢作者啦!不谢
引用来自“Carson6931”的评论源码地址放博客最后了,需要的话去看看引用来自“moonclock”的评论恩恩 ,谢谢作者啦!引用来自“Carson6931”的评论不谢您好,您传到github上的版本文件丢失了,只剩pod的文件了,有时间的话更新一下吧~
引用来自“Carson6931”的评论源码地址放博客最后了,需要的话去看看引用来自“moonclock”的评论恩恩 ,谢谢作者啦!引用来自“Carson6931”的评论不谢引用来自“moonclock”的评论您好,您传到github上的版本文件丢失了,只剩pod的文件了,有时间的话更新一下吧~ok 了,再看下
& 开源中国(OSChina.NET) |
开源中国社区(OSChina.net)是工信部
指定的官方社区

我要回帖

更多关于 label调整大小 的文章

 

随机推荐