这是一个UIButton
专门的。我知道对齐选项与 中的标签有关UIButton
,但是“内容”设置有什么作用?它们似乎对应于类的setEnabled:
, setSelected:
,setHighlighted:
方法UIButton
,但是单击 Highlighted 或 Selected 似乎不会改变按钮在界面构建器之外的行为。此外,让按钮始终显示为突出显示或选中的用例是什么?
3 回答
这些方法有几个实际用途。作为@MHUMobileInc。指出,它可以用于像扫雷这样的游戏。它还可以让您将按钮用作一种开关,其中选定的按钮为“ON”,未选定的版本为“OFF”。Apple 似乎希望开发人员回避这一点,并使用 UISwitches 或自定义视图。但是,Apple在其某些应用程序中确实自相矛盾。
这些设置设置了 UIButton的初始viewDidLoad
状态 - 因此,如果您将其设置为未选中或未突出显示,则在运行应用程序时将不会在屏幕上看到此 Interface Builder 设置。如果您想确保保留这些设置,在代码 ( viewDidLoad
) 中而不是在 Interface Builder 中这样说可能更容易。
不要过多地使用这些设置可能更容易。它们可能会导致您(开发人员)、从事该项目的其他程序员(如果有)和用户感到困惑。在工作时使用内置的 UIKit 视图,并在没有最适合这种情况的情况下创建自己的子类。
上半部分处理视图内内容的对齐方式。例如,如果您有一个较大的 UIButton,其图像小于按钮的边界,则默认情况下,图像将在按钮内垂直和水平居中。但是,如果您希望图像拥抱左/右/上/下,您可以使用这些选项设置对齐方式。
所有这些控件都与 UIControl 相关,而不是 UIButton,如该屏幕截图中的标题所示。
对齐是指contentHorizontalAlignment
和contentVerticalAlignment
。许多控件从sizeThatFits:
. 例如,UISwitch
对象具有固定大小,而UISlider
对象具有固定高度。如果将框架分配给与这些固定尺寸不对应的控件对象,则这些属性将确定应在该框架中的何处绘制控件界面。的实例UIButton
确实填充了它们的框架,因此UIButton
类以不同的方式解释这些属性以应用于按钮的内容,但属性本身并不特定于UIButton
类。
同样selected
,highlighted
和enabled
属性由UIControl
not定义UIButton
,并非所有子类都UIControl
使用它们。