iOS8 中 UILabel 不显示 subview 的问题

在 iOS8 中,如果在一个 UILabel 对象上添加 subview,同时给这个 label 设置了背景色 (backgroundColor),则会发现这些 subview 都不显示出来,但可以响应事件(如一个按钮作为 subview,按钮不显示但可以正常响应点击)。如果不给这个 label 设置背景色,则可以正常显示。

在 iOS7 上不存在此问题。

有些开发者为了方便,在自定义 NavigationBar 时用 UILabel 做父容器,然后在其上添加按钮,导致了在 iOS8 上运行时,导航栏上的按钮都不显示。

避免采用 UILabel 等做父容器,它们本来就不适合做父容器。