TvOS下使用Xamarin无法将禁用的UITextField背景设为透明
TvOS Xamarin UITextField透明背景不生效解决方案
在TvOS平台用Xamarin开发时,UITextField设置BackgroundColor = UIColor.Clear却无法显示透明背景,核心原因是TvOS的UITextField默认自带边框样式(UITextBorderStyle.RoundedRect),这个样式会自带一个半透明的背景层,直接覆盖你设置的透明背景。按以下步骤修改即可解决:
- 给UITextField添加
BorderStyle = UITextBorderStyle.None,关闭默认的边框背景样式 - 确保没有设置
Background属性(该属性优先级高于BackgroundColor,若设置会覆盖透明背景)
修改后的完整代码:
var label = new UITextField() { Text = seperator, UserInteractionEnabled = false, BackgroundColor = UIColor.Clear, VerticalAlignment = UIControlContentVerticalAlignment.Top, BorderStyle = UITextBorderStyle.None // 关键修改 }; parent.AddArrangedSubview(label); label.TranslatesAutoresizingMaskIntoConstraints = false; label.HeightAnchor.ConstraintEqualTo(200).Active = true; label.TextAlignment = UITextAlignment.Center;
如果修改后仍有异常,可以检查父视图UIStackView的背景设置,但根据你描述的「设置其他颜色正常」,问题基本出在UITextField的默认边框样式上。
内容的提问来源于stack exchange,提问作者Bart
相关产品推荐
相关产品推荐

