使文本字段背景透明,但占位符文本不透明

Posted

技术标签:

【中文标题】使文本字段背景透明,但占位符文本不透明【英文标题】:Having textfield background transparent, but placeholder text opaque 【发布时间】:2017-10-04 23:51:18 【问题描述】:

是否可以让文本字段的占位符文本不透明而其背景设置为透明,例如。如果我选择一些背景颜色,并将 alpha 设置为某个值,如下所示:

占位符文本也变得透明。但我希望它不透明。那么,这是否可以实现,最好使用故事板?或者至少通过代码。

如果不清楚我想要达到的目标,请告诉我,我会发布带有示例的图片。

【问题讨论】:

【参考方案1】:

您可以设置颜色的透明度而不是 UITextField 的 alpha。打开颜色下拉菜单并选择“其他”。将打开一个颜色选择器。在颜色选择器的底部,您可以更改不透明度。

【讨论】:

【参考方案2】:

Swift 中,您可以通过以下方式获取占位符元素:

let placeHolder = textField.value(forKey: "placeholderLabel") as! UILabel
placeHolder.textColor = .blue
placeHolder.isOpaque = true

并进行您喜欢的所有自定义..

【讨论】:

【参考方案3】:

你可以设置 UITextView.background = .clear

我提供了更多代码,以便以编程方式设置它会更容易,这是一个即用型示例。

private lazy var textField: UITextView = 
    let textField = UITextView()
    textField.translatesAutoresizingMaskIntoConstraints = false
    textField.font = UIFont.systemFont(ofSize: 14)
    textField.isEditable = false
    textField.textAlignment = .center
    textField.isScrollEnabled = false
    textField.backgroundColor = .clear // this is the line that answer you question
    textField.text = """
        People with these symptoms may have COVID-19:
        Fever of chills, cough, shortness of breath or
        difficulty breathing, fatigue, muscle or body aches,
        headache, new loss of taste and smell, sore throat,
        congestion or runny nose, nausea or vomiting,
        diarrhea
        """
    
    return textField
()

只要记住设置约束并将子视图添加到您的超级视图中 .addSubview(TextField)

【讨论】:

以上是关于使文本字段背景透明,但占位符文本不透明的主要内容,如果未能解决你的问题,请参考以下文章

如何使输入字段的不透明度不影响其中的文本颜色?

背景颜色的不透明度,但不是文本[重复]

如何使我的网站背景透明而不使内容(图像和文本)也透明?

PB高手们请赐教!PB能使动态文本框背景透明吗?诸如“mle_1”控件,数据窗口背景能透明也行!见详述~

如何在悬停时使按钮内的文本透明?背景应该保持不变

叠加在图像上时,使文本显示为白色,具有半透明的黑色背景