ibireme / YYText

Powerful text framework for iOS to display and edit rich text.
MIT License
8.86k stars 1.7k forks source link

YYLabel 在 storyboard 里无法显示(真机无法显示,模拟器正常) #63

Closed moonfisher closed 8 years ago

moonfisher commented 8 years ago

ibireme,你好。

我在用 storyboard 做一个登陆界面,上面放一个 YYLabel 显示一些信息。我的步骤是: 1)在storyboard里建一个controller,在view上拖一个uiview,然后指定为 YYLabel 类 2)把 uiview 拖到代码里 3)对代码里的 uiview 设置颜色,字体,文字内容

我观察有如下奇怪现象: 1)用模拟器测试,可以正常显示文字,各项属性都正确 2)用真机测试(ios8,ios9)无法看见文字,什么都没有 3)如果不使用storyboard,直接用代码 YYLabel alloc init 的方式手写代码,真机测试正常 4)不用 YYLabel,用 YYTextView,模拟器和真机都正常,用storyboard也正常。

不知是什么原因,烦请抽空看下,YYKit 确实很好用,赞一个

ibireme commented 8 years ago

相同代码,在模拟器和真机表现不一样,这个比较奇怪。。

你可以调试一下:

  1. 给 label 添加背景色,看看 label 的实际显示范围。
  2. 执行下面的代码,看看 label 内部的排版结果:
YYTextDebugOption *debugOptions = [YYTextDebugOption new];
debugOptions.baselineColor = [UIColor redColor];
debugOptions.CTFrameBorderColor = [UIColor redColor];
debugOptions.CTLineFillColor = [UIColor colorWithRed:0.000 green:0.463 blue:1.000 alpha:0.180];
debugOptions.CGGlyphBorderColor = [UIColor colorWithRed:1.000 green:0.524 blue:0.000 alpha:0.200];
[YYTextDebugOption setSharedDebugOption:debugOptions];
moonfisher commented 8 years ago

2015-12-09 4 55 23 YYLabelYYLabel 在xib上初始化的过程中,模拟器会调用 setBounds 这个函数(参看截图),在真机上则不会,后续bounds为0,无法显示

ibireme commented 8 years ago

明白了,那目前可以先手动在代码中设置一下 frame 或 bounds, 稍后我会添加一下额外处理来避免这个问题。

moonfisher commented 8 years ago

好的,我们已经手动添加了,不过更期望官方解决,哈哈。

YYKit,牛b啊

smallqiang commented 8 years ago

我最近使用的时候也发现有这样的问题用xib创建的YYLabel不能显示,只能用代码来显示,但是设置背景色那view确实存在的,只是字没有显示出来。

ibireme commented 8 years ago

Fixed