c# - 如何在 UIStackView 内更改 UIButton 背景颜色
问题描述
我正在尝试将预加载的 UIStackView 插入另一个 StackView。在预加载的 UIStackView 中,我有以编程方式添加的子视图。问题是当我添加按钮并设置它们的颜色时,它们会得到白色背景,根本没有圆角半径
我尝试使用“background = new UIColor(51,181,229,255)”和“background = UIColor.FromCGColor(51,181,229,255)”
结果相同..
//TextFields
UITextField oldPasswordTextField = new UITextField
{
Placeholder = "Old Password",
BackgroundColor = UIColor.White,
ClipsToBounds = true
};
UITextField newPasswordTextField = new UITextField
{
Placeholder = "New Password",
BackgroundColor = UIColor.White,
ClipsToBounds = true
};
UITextField repPasswordTextField = new UITextField
{
Placeholder = "Repeat New Password",
BackgroundColor = UIColor.White,
ClipsToBounds = true
};
//Buttons
UIButton cancelButton = new UIButton();
cancelButton.SetTitle("Cancel", UIControlState.Normal);
cancelButton.SetTitleColor(UIColor.White, UIControlState.Normal);
cancelButton.BackgroundColor = UIColor.FromCGColor(new CoreGraphics.CGColor(51, 181, 229, 255));
cancelButton.ClipsToBounds = true;
UIButton submitButton = new UIButton();
submitButton.SetTitle("Submit", UIControlState.Normal);
submitButton.SetTitleColor(UIColor.White, UIControlState.Normal);
//submitButton.BackgroundColor = new UIColor(51, 181, 229, 255);
submitButton.ClipsToBounds = true;
passwordChangeStackView.AddArrangedSubview(oldPasswordTextField);
passwordChangeStackView.AddArrangedSubview(newPasswordTextField);
passwordChangeStackView.AddArrangedSubview(repPasswordTextField);
passwordChangeStackView.AddArrangedSubview(submitButton);
passwordChangeStackView.AddArrangedSubview(cancelButton);
passwordChangeStackView.AddArrangedSubview(activityIndicator);
MainStackView.InsertArrangedSubview(passwordChangeStackView, 2); //2 -> 在相关按钮之后
我需要按钮与我选择的颜色、白色文本和所有子视图都有圆角......但我无法让两者都工作。
解决方案
您可以使用background = new UIColor(51,181,229,255),但是您在此函数中的参数是错误的。
RGB 颜色值通过以下方式指定:rgb(red, green, blue)。
每个参数(红色、绿色和蓝色)将颜色的强度定义为 0 到 255 之间的整数。
例如, rgb(0, 0, 255) 被渲染为blue,因为 blue 参数设置为其最高值 (255) 而其他参数设置为 0。
让我们看一下定义:
//UIColor constructor from red, green, blue and alpha components.
//
// Parameters:
// red:
// Red component, 0.0 to 1.0f.
//
// green:
// Green component 0.0 to 1.0f.
//
// blue:
// Blue component value 0.0 to 1.0f.
//
// alpha:
// Alpha (transparency) value from 0.0 to 1.0f.
//
// Remarks:
// This can be used from a background thread.
[BindingImpl(BindingImplOptions.GeneratedCode | BindingImplOptions.Optimizable)]
[Export("initWithRed:green:blue:alpha:")]
public UIColor(nfloat red, nfloat green, nfloat blue, nfloat alpha);
所以在你的情况下,你可以使用:
submitButton.BackgroundColor = new UIColor(51/255.0f, 181/255.0f, 229/255.0f, 255/255.0f);
推荐阅读
- python-3.x - 无法使用 Anaconda Python 导入 sqlite3
- reactjs - 如何使用 React 的 setState() 修复 linting 错误
- python - 如何在 Python 中创建单独的哈希算法实例?
- java - 返回的迭代器可以访问 Java 中的私有数组吗?
- woocommerce - 在类别页面上显示 Woocommerce 面包屑
- neo4j - Cypher 查询以查找具有共享属性的节点,并将其公式化为输入和输出
- javascript - 按 parentId javascript 对平面数组进行排序
- git - 尝试推送到 git 实验室时,“确保在 git 中配置了 'user.email' 和 'user.name'”
- mysql - SQL 事件不运行
- python-3.x - 测试 AWS Lambda 处理程序函数时出错:事件和上下文参数的数据格式