求解关于 IOS 中一个 Label 自适应高度的问题。

2014-08-29 11:39:40 +08:00
 jtn007
我现在程序中有一个label,宽度固定,高度需要根据获取到的文字的长度来决定,本来是有方法来根据string获取高度的,但是现在获取到的不是一个简单的字符串,而是一串html字符串,那么我就需要NSAttributedString去解析并保存它,可是这样的话就没法用之前那个方法去获取高度了,问下有没有什么好的解决方案。
12013 次点击
所在节点    iDev
20 条回复
txx
2014-08-29 14:10:08 +08:00
AutoLayout..
jtn007
2014-08-29 15:11:25 +08:00
@txx 可我不用xib啊。。。布局全是代码
txx
2014-08-29 15:18:41 +08:00
@jtn007 呵呵...
chmlai
2014-08-29 15:19:33 +08:00
@jtn007 autolayout不能用代码写吗?
hustlzp
2014-08-29 15:50:05 +08:00
@jtn007 手写constraint吧。
openkava
2014-08-29 15:51:18 +08:00
UILabel *lbTeseTitle2 = [[UILabel alloc ] initWithFrame:CGRectMake(36, 24, titleView.width-40 ,50 )] ;
lbTeseTitle2.text = self.theItem[@"feature"] ;
lbTeseTitle2.font = SYSTEMFONT(14) ;
[lbTeseTitle2 setNumberOfLines: 0];
[tempView addSubview:lbTeseTitle2 ] ;
//设置一个行高上限
CGSize size = CGSizeMake(titleView.width-40,2000);
//计算实际frame大小,并将label的frame变成实际大小
CGSize labelsize = [ lbTeseTitle2.text sizeWithFont:lbTeseTitle2.font constrainedToSize:size lineBreakMode:NSLineBreakByWordWrapping];

[lbTeseTitle2 setFrame: CGRectMake(36, 24, labelsize.width, labelsize.height)];
ydhydh
2014-08-29 15:56:00 +08:00
hrx00747
2014-08-29 16:37:26 +08:00
设置 numberOfLines = 0
调用 sizeToFit
jtn007
2014-08-29 16:52:41 +08:00
@txx 呵呵是什么意思啊,我接触IOS开发不久。。求指教啊
jtn007
2014-08-29 17:04:29 +08:00
@chmlai 我不太清楚,我刚接触这个不久,autolayout不是storyboard里打勾选的那个么?
SeanChense
2014-08-29 17:10:49 +08:00
@jtn007 感觉他在说不用 sb 的都是 sb
txx
2014-08-29 17:41:27 +08:00
@SeanChense
@jtn007 所有東西都是可以用代碼來完成的...
SeanChense
2014-08-29 17:45:06 +08:00
@txx 不好意思 我误会你的意思了
ld0891
2014-08-30 16:17:32 +08:00
html代码没有关系,只要你出来的是NSString就行。
line break mode设置为wordwrap,number of lines设置为0就可以自动适应了。
cyokvip
2014-08-30 21:49:25 +08:00
@txx 不过手写autolayout好麻烦啊,xib最方便
txx
2014-08-30 22:14:41 +08:00
@cyokvip 当然不会 谁用原生啊 果断第三方
cyokvip
2014-08-31 06:37:04 +08:00
@txx 第三方的一般用什么,求推荐,我才学iOS不久😄
txx
2014-08-31 12:05:55 +08:00
cyokvip
2014-08-31 16:22:25 +08:00
@txx 额,这个貌似不兼容swift
ewangke
2014-08-31 23:09:13 +08:00
@txx 虾神你赶快洗洗睡吧...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/130584

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX