2016-02-26 12 views
4

這是用於swift的ios開發。我有一個非常簡單的佈局:如何使文本標籤在不同Apple產品屏幕上縮放字體大小?

link1(沒有足夠的代表實際發佈PIC)

所有我想要做的就是確保「成果」標籤擴展到大致相同的比例爲每個不同的屏幕尺寸。正如你可以看到下面,不同的是一個3.5的屏幕和iPad的屏幕之間格外引人注目:

link2

所以我想使iPad的屏幕足夠大,佔用的空間相同的百分比上的標籤就像在3.5屏幕上一樣,垂直和水平。我如何去做這件事?我已經通過其他幾個教程/解決方案,但他們都教你一些不同的東西,比如如何改變標籤尺寸,但不是字體大小。我嘗試添加寬高比約束,但是隻能在不改變字體大小的情況下進行移動。添加高度/寬度限制也只會更改不帶字體大小的標籤大小。

+0

檢測屏幕寬度,然後手動設置字體。 [http://stackoverflow.com/questions/25780283/ios-how-to-detect-iphone-6-plus-iphone-6-iphone-5-by-macro](http://stackoverflow.com/questions/ 25780283/ios-how-to-detect-iphone-6-plus-iphone-6-iphone-5-by-macro) –

回答

2

你可以在你的Storyboard中實際做到這一點。

1,在故事板上打開File Inspector選項卡(第一個選項卡),同時設置Use auto layoutUse size classes檢查。 2,然後你可以去你的標籤屬性(Forth標籤),你會注意到旁邊有一個「+」,點擊它來添加。

3,選擇你想要的屏幕尺寸,可以參考"Adaptivity and Layout"然後選擇你的字體大小。

回答參考THIS LINK,你也可以看看

+0

如果有幫助,請隨時詢問並標記爲答案。 – Lee

+1

謝謝!這是我最喜歡的解決方案,因爲如果可能的話,我通常寧願避免使用自動佈局代碼。這使得它更容易做到,而且這使得當我預覽故事板時,我知道我所看到的正是我將要得到的。唯一的問題是,這隻能讓我區分iPad和iPhone。儘管iPhone的尺寸不同,但它們只有相同的緊湊/普通尺寸,所以我無法區分iPhone模型之間的文字大小。 – Hien

+0

你能標記爲答案嗎? – Lee

5

Hien,

這是關於檢測設備/屏幕尺寸的超級貼子。

How to detect iPhone 5 (widescreen devices)?

這是上我最喜歡的建議,請點擊它,並感謝真正的作者!

添加一個 '新雨燕文件' - > AppDelegateEx.swift

添加擴展的appdelegate

import UIKit 
extension AppDelegate { 
    class func isIPhone5() -> Bool{ 
     return max(UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height) == 568.0 
    } 
    class func isIPhone6() -> Bool { 
     return max(UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height) == 667.0 
    } 
    class func isIPhone6Plus() -> Bool { 
     return max(UIScreen.mainScreen().bounds.width,  UIScreen.mainScreen().bounds.height) == 736.0 
    } 
} 

用法:

if AppDelegate.isIPhone5() { 
    collectionViewTopConstraint.constant = 2 
}else if AppDelegate.isIPhone6() { 
    collectionViewTopConstraint.constant = 20 
} 

與應用程序中設置字體結合起來,你現在肯定應該做的?

variable.font = UIFont(name: "Palatino", size: 24) 
+0

通過代碼確實可行。你有什麼辦法通過故事板做到這一點? – Ishika

相關問題