首页 文章

UILabel不会换行(如果我更改默认字体大小)

提问于
浏览
1

我正在研究一个简单的 storyboard 原型 . 我的TableViewController使用Dynamic Prototype作为内容 .

我有一个带有4个标签的单元格,其中两个将在代码中设置(标签文本) . 单元格的高度也将在代码中计算 . 换行符设置为Word Wrap和 everything's working fine with the default values (System 17.0)

看这里:

enter image description here

..但如果我 change the Font Size of the "Fantasy Street..." label 它不会再破坏而是它会被切断!

看到这里:使用System Font 16

enter image description here

行设置为0 Word Wrap仍处于活动状态

..我也尝试在代码中手动完成,但没有变化 .

有没有人对此有解释?

****编辑:**我添加myLabel.frame = CGRectMake(t.origin.x,t.origin.y,t.size.width,t.size.height * 2);

到了cellForRowAtIndexPath,我仍然看到了截断标签 . 但是,如果我然后滚动表格视图使标签在可见区域之外,它将在再次可见时显示完整的文本 .

顺便说一句,我正在使用viewTags,所以我没有专门的Cell Class,例如UILabel * myLabel =(UILabel *)[cell viewWithTag:2];

2 回答

  • 0

    你应该检查UILabel的宽度;宽度应小于值的宽度 . 然后像这样:

    (void) viewWillLayoutSubviews {
        _landPhoneTips.preferredMaxLayoutWidth = _landPhoneTips.bounds.size.width;
    }
    
  • 1

    我花了几个小时处理这个相同的问题,然后在昨晚彻底整理出来 . 更改字体大小后,您必须在故事板中选择 UILabel 并选择 Edit > Size 以适合内容,即使您之前已经这样做过!这样做显然会重置一些在更改字体大小时搞砸的设置 . 完成后,UILabel将像之前一样进行包装 .

相关问题