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
90928yao
V2EX  ›  iDev

UIlabel 在 autolayout 情况下在 Cell 不能正常的显示

  •  
  •   90928yao · 2016-02-14 21:18:17 +08:00 · 2760 次点击
    这是一个创建于 3212 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1
    图 1
    2
    图 2
    如图所示,用的 autolayout ( mansory ,没用 xib ,约束都是在 initwithstlye 方法中添加的), label 是自定义的(自定义了很多东西比如 padding 这种,比较方便就直接用了)。遇到的问题是第一次显示 cell 的时候都是省略号,只有滑动出屏幕,再出现之后才是正常的。想了很多方法,比如在传入数据源 configurecell 时候调用 setNeedsLayout()但是不起作用。用系统自带的应该没问题,菜鸡想知道这是什么原因导致的(别人的代码用的 xib ,貌似是正常的..我明天仔细看看)

    3 条回复    2016-02-15 08:27:20 +08:00
    mornlight
        1
    mornlight  
       2016-02-14 21:53:16 +08:00
    划动出屏幕再出现时会通常更新一次 cell ,具体干了些啥你应该知道。
    显示省略号是因为 label 长度不够啊,文字出不来,最直接的可能原因是它的约束写得有问题,把 label 压得太短了。
    SeanChense
        2
    SeanChense  
       2016-02-14 21:59:52 +08:00
    楼上已经解释得足够详细了。
    还想要有进一步的探索就必须放代码了。
    juxingzhutou
        3
    juxingzhutou  
       2016-02-15 08:27:20 +08:00
    有可能出问题的原因:
    1. 右边界的约束没设置好;
    2. 在 heightForRow 中用 systemLayoutSizeFittingSize 推算高度之前没有为 cell 的宽度赋值,对 cell 的 width 赋一个 table view 的宽度即可;
    3. label 没有在 bounds 改变时正确地修改自己的 preferredMaxLayoutWidth ,继承 UILabel 并重写对应 setter 方法即可。

    具体可参考 Github 上的`forkingdog/UITableView-FDTemplateLayoutCell`的实现。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2208 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 01:30 · PVG 09:30 · LAX 17:30 · JFK 20:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.