繁体   English   中英

这些设置在 Interface Builder 中有什么作用?

[英]What do these settings do in Interface Builder?

有问题的设置

这是专门针对UIButton 我知道对齐选项与UIButton内的标签有关,但“内容”设置有什么作用? 它们似乎对应于UIButton类的setEnabled:setSelected:setHighlighted:方法,但是单击 Highlighted 或 Selected 似乎不会更改界面构建器之外的按钮行为。 另外,让按钮始终显示突出显示或选中的用例是什么?

这些方法有多种实际用途。 作为@MHUMobileInc。 指出,它可以用于像扫雷这样的游戏。 它还可以让您将按钮用作一种开关,其中选定的按钮为“ON”,未选定的版本为“OFF”。 Apple 似乎希望开发人员避开这一点,并使用 UISwitches 或自定义视图。 但是,Apple在其某些应用程序中确实自相矛盾

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

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

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

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

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

类似地, selectedhighlightedenabled属性由UIControl而非UIButton定义,并非UIControl所有子类都使用它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM