我可以为几个 UIButton 创建一个彩色背景吗?

Posted

技术标签:

【中文标题】我可以为几个 UIButton 创建一个彩色背景吗?【英文标题】:Can I create a color background for several UIButton's? 【发布时间】:2011-09-06 19:49:37 【问题描述】:

我有 12 个 UIButton(每行 4 行,每行 3 个),我想为所有 12 个 UIButton 创建一个通用的背景颜色。公共背景颜色需要与所有 UIButton 的背景颜色不同。我在 Interface Builder 中创建这些按钮,所以理想情况下我也想在那里创建公共背景,但如果那不可能,那么只要我可以继续在 Interface Builder 中创建 UIButton,我愿意在 Interface Builder 之外编写通用背景代码。我尝试通过在 Interface Builder 中创建一个大的 UILabel 来做到这一点,但我无法将 UILabel 保留在按钮的后面。公共背景需要留在按钮的后面。感谢您提供的任何帮助。

【问题讨论】:

您的问题似乎混淆了UIButtons 的背景和放置UIButtons 的UIView 的背景。 不,我不这么认为。我明白那里的区别。问题是我不希望整个 UIView 有这种背景颜色......只有它的一部分...... UIButtons 所在的部分。 UIButtons 的背景颜色需要与其周围区域的颜色不同。 整个UIView只有一个backgroundColor。每个UIButton 有一个且只有一个backgroundColor。如果您只希望UIView 的一部分具有某种颜色,那么您需要在其上插入另一个UIView 并更改其颜色。否则,下面的两个答案都会告诉您如何继续。 好的,如果我为该区域添加一个新的 UIView 并使用我想要的颜色,有没有办法确保我在 IB 中创建的 UIButton 始终位于顶部这个新的 UIView? 【参考方案1】:

您需要以编程方式执行此操作,而不是在 IB 中。

您可以为您的 12 个按钮创建 IBOutlets,以便您可以从视图控制器访问它们。

然后,在viewDidLoad 方法中,创建一个UIColor对象,并将其设置为按钮的backgroundColor 属性:

- ( void )viewDidLoad

    UIColor * bgColor       = [ UIColor redColor ];
    button1.backgroundColor = bgColor;
    button2.backgroundColor = bgColor;
    button3.backgroundColor = bgColor;
    /* ... */

【讨论】:

我已经在 IB 中设置了我的 UIButton 背景颜色。这不是问题。【参考方案2】:

在您的视图控制器中:

self.view.backgroundColor = [UIColor redColor];

button.backgroundColor = [UIColor blueColor];

老实说,您应该能够在 IB 中做到这一切。你不需要 UILabel 或类似的东西。只需为您的父视图和每个按钮设置背景颜色。就视图排序而言,视图中列出的项目按从后到前的顺序列出。树底部的项目将位于它们上面列出的其他视图之上。

【讨论】:

问题是我不希望整个 UIView 都具有这种背景颜色......只有它的一部分...... UIButtons 所在的部分。 UIButtons 的背景颜色需要与其周围区域的颜色不同。我想我不明白你所说的“树底”是什么意思。什么决定了 IB 中树的底部?

以上是关于我可以为几个 UIButton 创建一个彩色背景吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Django Admin中将ImageField限制为几个选项

可以重置 UIButton 背景图像吗?

UIButton 背景图片可以支持动态类型吗?

在使用 gghighlight 时为几个 geom_hlines 创建图例

pyspark 按列将数据帧拆分为几个数据帧

将持续数天的 NSDate 拆分为几个跨度