这些设置在Interface Builder中做了什么?

时间:2012-11-15 21:49:13

标签: ios xcode interface-builder

The settings in question

专门针对UIButton。我了解对齐选项与UIButton内的标签有关,但'内容'是什么?设置呢?它们看起来与setEnabled:类的setSelected:setHighlighted:UIButton方法相对应,但点击突出显示或已选中似乎不会更改按钮&# 39;界面构建器之外的行为。另外,按钮总是突出显示或选中的用例是什么?

3 个答案:

答案 0 :(得分:3)

这些方法有几种实际用途。作为@MHUMobileInc。指出,它可以用于像扫雷一样的游戏。它还允许您将按钮用作一种开关,其中所选按钮为“ON”且未选择版本为“OFF”。 Apple似乎希望开发人员回避这一点,并使用UISwitches或自定义视图。但是,Apple确实contradict itself in some of its apps

这些设置设置了UIButton的初始状态 - 因此,如果在viewDidLoad中未将其设置为未选中或突出显示,则在运行时将不会在屏幕上看到此界面构建器设置该应用程序。如果您想确保保留这些设置,可能更容易在代码(viewDidLoad)而不是Interface Builder中这么说。

不要过多地使用这些设置可能更容易。它们可能会导致您(开发人员),正在处理该项目的其他程序员(如果有的话)和用户感到困惑。在工作时使用内置的UIKit视图,并在没有最适合该情况的任何内容时创建自己的子类。

答案 1 :(得分:0)

上部解决了视图中内容的对齐问题。例如,如果您有一个大的UIButton,其图像小于按钮的边界,则默认情况下,图像将在按钮内垂直和水平居中。但是,如果您希望图像拥抱左/右/上/下,您可以使用这些选项设置对齐。

答案 2 :(得分:0)

所有这些控件都与UIControl有关,而不是UIButton,如屏幕截图中的标题所示。

对齐是指contentHorizontalAlignmentcontentVerticalAlignment。许多控件从sizeThatFits:返回固定宽度或固定高度或两者。例如,UISwitch对象具有固定大小,而UISlider对象具有固定高度。如果将框架分配给与这些固定尺寸不对应的控制对象,则这些属性将确定应在该框架中绘制控制界面的位置。 UIButton的实例会填充其框架,因此UIButton类会以不同的方式解释这些属性以应用于按钮的内容,但属性本身并不特定于UIButton类。

同样,selectedhighlightedenabled属性由UIControl而不是UIButton定义,并非UIControl的所有子类都使用它们。