簡體   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