V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
jtn007
V2EX  ›  iDev

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

  •  
  •   jtn007 ·
    Neo-J · 2014-08-29 11:39:40 +08:00 · 12213 次点击
    这是一个创建于 3768 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我现在程序中有一个label,宽度固定,高度需要根据获取到的文字的长度来决定,本来是有方法来根据string获取高度的,但是现在获取到的不是一个简单的字符串,而是一串html字符串,那么我就需要NSAttributedString去解析并保存它,可是这样的话就没法用之前那个方法去获取高度了,问下有没有什么好的解决方案。
    20 条回复    2014-08-31 23:09:13 +08:00
    txx
        1
    txx  
       2014-08-29 14:10:08 +08:00
    AutoLayout..
    jtn007
        2
    jtn007  
    OP
       2014-08-29 15:11:25 +08:00
    @txx 可我不用xib啊。。。布局全是代码
    txx
        3
    txx  
       2014-08-29 15:18:41 +08:00
    @jtn007 呵呵...
    chmlai
        4
    chmlai  
       2014-08-29 15:19:33 +08:00
    @jtn007 autolayout不能用代码写吗?
    hustlzp
        5
    hustlzp  
       2014-08-29 15:50:05 +08:00
    @jtn007 手写constraint吧。
    openkava
        6
    openkava  
       2014-08-29 15:51:18 +08:00   ❤️ 1
    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)];
    hrx00747
        8
    hrx00747  
       2014-08-29 16:37:26 +08:00   ❤️ 1
    设置 numberOfLines = 0
    调用 sizeToFit
    jtn007
        9
    jtn007  
    OP
       2014-08-29 16:52:41 +08:00
    @txx 呵呵是什么意思啊,我接触IOS开发不久。。求指教啊
    jtn007
        10
    jtn007  
    OP
       2014-08-29 17:04:29 +08:00
    @chmlai 我不太清楚,我刚接触这个不久,autolayout不是storyboard里打勾选的那个么?
    SeanChense
        11
    SeanChense  
       2014-08-29 17:10:49 +08:00
    @jtn007 感觉他在说不用 sb 的都是 sb
    txx
        12
    txx  
       2014-08-29 17:41:27 +08:00   ❤️ 1
    @SeanChense
    @jtn007 所有東西都是可以用代碼來完成的...
    SeanChense
        13
    SeanChense  
       2014-08-29 17:45:06 +08:00
    @txx 不好意思 我误会你的意思了
    ld0891
        14
    ld0891  
       2014-08-30 16:17:32 +08:00
    html代码没有关系,只要你出来的是NSString就行。
    line break mode设置为wordwrap,number of lines设置为0就可以自动适应了。
    cyokvip
        15
    cyokvip  
       2014-08-30 21:49:25 +08:00 via iPhone
    @txx 不过手写autolayout好麻烦啊,xib最方便
    txx
        16
    txx  
       2014-08-30 22:14:41 +08:00 via iPhone
    @cyokvip 当然不会 谁用原生啊 果断第三方
    cyokvip
        17
    cyokvip  
       2014-08-31 06:37:04 +08:00 via iPhone
    @txx 第三方的一般用什么,求推荐,我才学iOS不久😄
    txx
        18
    txx  
       2014-08-31 12:05:55 +08:00
    cyokvip
        19
    cyokvip  
       2014-08-31 16:22:25 +08:00 via iPhone
    @txx 额,这个貌似不兼容swift
    ewangke
        20
    ewangke  
       2014-08-31 23:09:13 +08:00
    @txx 虾神你赶快洗洗睡吧...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   993 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:37 · PVG 02:37 · LAX 10:37 · JFK 13:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.