Swift UIKit-如何防止UITextField的默认模糊和聚焦背景?
如图所示,默认情况下,Swift UIKit-如何防止UITextField的默认模糊和聚焦背景?,swift,uikit,tvos,Swift,Uikit,Tvos,如图所示,默认情况下,UITextField(仅在tvOS?)具有以下行为: 半透明覆盖(在第二个按钮中将背景和白色文本置为灰色) 白色背景,对焦时尺寸更大(第一个按钮) 如何删除/更改这些行为? 我做了什么? 我试图将Interface Builder中所有与颜色相关的属性(文本颜色除外)更改为Clear color 我使用这些代码以编程方式构建视图 let view = UITextField() view.backgroundColor = .clear vie
UITextField
(仅在tvOS
?)具有以下行为:
- 半透明覆盖(在第二个按钮中将背景和白色文本置为灰色)
- 白色背景,对焦时尺寸更大(第一个按钮)
- 我试图将Interface Builder中所有与颜色相关的属性(文本颜色除外)更改为
Clear color
- 我使用这些代码以编程方式构建视图
let view = UITextField() view.backgroundColor = .clear view.translatesAutoresizingMaskIntoConstraints = false view.font = view.font?.withSize(16) view.textAlignment = .center view.borderStyle = .none view.tintColor = .clear view.tintAdjustmentMode = .normal view.accessibilityIgnoresInvertColors = true view.textColor = .white view.disabledBackground = .none view.background = .none view.layer.backgroundColor = CGColor(gray: 0.0, alpha: 0.0) view.layer.shadowColor = CGColor(gray: 0.0, alpha: 0.0) view.layer.borderColor = CGColor(gray: 0.0, alpha: 0.0) view.layer.shadowOpacity = 0.0
- 一个新的tvOS应用程序项目,使用macOS 10.15.7中的XCode 12.2创建
- 在苹果电视模拟器上运行
- 未使用其他库/吊舱
现在还不清楚你想要实现什么。谢谢你,我来自web开发,所以我还不能完全理解这一点。我将在14小时内标记此答案并授予赏金。作为一个附带问题,你能给我指一些关于这种深入功能的教程吗?现有教程仅处理曲面。
class MyTextField: UITextField {
lazy var textLayer = CATextLayer()
override func didMoveToSuperview() {
super.didMoveToSuperview()
layer.backgroundColor = UIColor.clear.cgColor
textLayer.font = self.font
textLayer.fontSize = 36
textLayer.foregroundColor = UIColor.white.cgColor
textLayer.alignmentMode = .center
textLayer.frame = layer.bounds
layer.addSublayer(textLayer)
layer.borderWidth = 2
}
override func layoutSublayers(of layer: CALayer) {
layer.borderColor = self.isFocused ? UIColor.black.cgColor : UIColor.clear.cgColor
textLayer.frame = layer.bounds
textLayer.string = self.text?.isEmpty ?? true ? self.placeholder : self.text
}
override func addSubview(_ view: UIView) {
// blocks standard styling
}
}