我可以为几个 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 保留在按钮的后面。公共背景需要留在按钮的后面。感谢您提供的任何帮助。
【问题讨论】:
您的问题似乎混淆了UIButton
s 的背景和放置UIButton
s 的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限制为几个选项