添加到UITextField的CALayer不会出现在xib视图中

时间:2015-09-16 18:45:22

标签: ios swift uitextfield calayer xib

我希望我的一些UITextField只在文本下面有一条简单的行(并且没有边框)。我创建了一个UITextField的小子类(我把它放在Github上,所以如果你想查看代码,你可以去there)。我使用的是CALayer,身高为1px,我将其添加到UITextField

这几乎适用于所有textFields,但是当我在Xib文件中的textFields上使用它时,底线不会出现。

1 个答案:

答案 0 :(得分:0)

将以下代码添加到setProperties()方法中。

    layer.masksToBounds = false

为什么要解决这个问题?好吧,根据文档,CALayer的{​​{1}}属性默认为masksToBounds。一个合理的假设是,Apple的false的initWithCoder()初始化程序的实现将视图的层UITextField属性设置为masksToBounds,而它们对UITextField的initWithFrame()初始化程序的实现却没有。如图所示,这种不一致自然会导致混淆。

上面的代码保证图层的true属性始终为masksToBounds,无论调用哪个初始值设定项。