ios - 如何将 UITextField 添加到 CALayer 并使其工作

标签 ios objective-c uitextfield

我在谷歌上搜索并找到了 this .但我不确定答案是否正确。

所以我需要的是将 UITextField 添加到 CALayer 中并使其工作我使用了这个方法但它不起作用

[layer addSubLayer:textField.layer];

有解决这个问题的想法吗?

最佳答案

简短的回答是,你不能。图层是较低级别的对象。 View 有层,但层不能有 View 。

如果您要添加另一个 View 图层作为当前 View 图层的子图层, View 级别将不知道它的图层托管在其他地方。 View 不会成为 View 层次结构的一部分,因此它不会认为它需要绘制自己。而且,除非您在某处保持对它的强引用,否则它将被释放,导致您添加的层被释放,并创建一个僵尸。

View 包含 View 。层包含层。将它们分开。如果你想要图层中的文本内容,你可以使用 CATextLayer,尽管它们看起来不如文本 UI 对象好,因为它们不进行亚像素抗锯齿。我尝试使用文本层,但最终放弃了它们,因为它们看起来很糟糕。

关于ios - 如何将 UITextField 添加到 CALayer 并使其工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21728564/

相关文章:

iphone - UITableViewCell 帮助中的 UITextField

ios - 如果 TextField 为空,则设置自定义文本

ios - 如何将选择器中的值设置为特定部分的自定义单元格文本字段?

c++ - 无符号整数如何工作

ios - xcode导航标题以编程方式编写

ios - 如何使标签栏图标图像变小?

ios - 滚动时 Swift UICollectionView 消失 label.text 和颜色混合可能是 BUG?

ios - 保留计数并从Fromview移除

ios - viewDidLoad 和 viewWillAppear 之间的 Swift 长延迟

ios - IQkeyboardmanager 订单问题