2015-01-09 50 views
2

我正嘗試使用自動佈局創建遊戲菜單。我真的希望這個比例取決於屏幕的大小。例如,如果一個UILabel在iphone上的字體是12,那麼它應該是一個24或30的ipad。iOS - 使用自動佈局創建比例按鈕,標籤等

我使用約束來使元素本身更大取決於屏幕大小,但UIButton上的標題不會根據按鈕大小進行縮放。

我知道你可以創建基於大小類的元素,但這是最好的方法嗎?我應該重新制作按鈕兩次,以便我可以增加一個按鈕與另一個按鈕的字體大小?

其實我已經嘗試過這種方法,但是當我我的按鈕複製到另一個級別大小就失去了所有相關的約束..

什麼是完成這樣的事情最好的辦法。我需要跨設備的相同佈局,但不是以相同的方式間隔。我需要事實上放大的東西。

回答

1

你需要設置按鈕的titleLabel的字體大小,以根據你想要的比例進行調整...我建議使用比例爲12的屏幕尺寸按比例增長。例如,屏幕尺寸是寬度的兩倍(雙倍寬度)的設備將具有兩倍大的字體。您的比例是320:屏幕寬度,並乘上字體的大小12

[myButton.titleLabel setFont:[UIFont systemFontOfSize:(12.0f*(self.view.frame.size.width/320.0f))]];

+0

如果您需要在這多個按鈕繼承它。 –

+0

所以這需要以編程方式完成.. IB沒有任何解決這個問題?我可以按照你的建議進行子類化,但是我必須爲UILabel,UIButton等創建一個子類來放大文本 – hamobi

+0

有一些東西像自動調整字體大小以適應UILabels的寬度(假設按鈕標題標籤)。我不記得確切的方法名稱,請檢查文檔! (我認爲它也是以編程的方式完成的,但至少你不需要子類,因爲你可以只說(在[self.view子視圖]中的UILabel *標籤){並在那裏應用它,遍歷所有嵌套的子視圖 –