2015-02-27 4 views
2

Мы используем размер шрифта 12pt для 5S, но это крошечный и нечитаемый на 6 Plus. Поэтому нам нужно увеличить размер шрифта до 15 пунктов на 6 Plus, но тогда наши дополнения и поля все испорчены, поскольку мы используем некоторые жестко закодированные смещения в наших ограничениях автоматической компоновки.Как мне обрабатывать разные размеры шрифтов на iPhone 5S и 6 Plus?

Я экспериментировал с удалением 6 и 6 изображений запуска, чтобы заставить «зум», но это не идеально. Мы действительно хотим, чтобы часть нашего контента была меньше, чтобы использовать более высокое разрешение.

Мне просто интересно, что делают другие разработчики iOS? Вы настраиваете динамические размеры шрифтов и дополнения?

Я только что написал этот маленький вспомогательный файл в Swift, но не уверен, что это лучший способ делать вещи:

let DEVICE_WIDTH_5S: CGFloat = 320.0 // 320x568 
let DEVICE_WIDTH_6: CGFloat  = 375.0 // 375x667 
let DEVICE_WIDTH_6PLUS: CGFloat = 414.0 // 414x736 

let screenSize: CGRect = UIScreen.mainScreen().bounds 

// Helper functions for fonts 
func ProximaNova(style: String, size: CGFloat) -> UIFont { 
    return dynamicFont("ProximaNova", style, size) 
} 
func BrandonGrotesque(style: String, size: CGFloat) -> UIFont { 
    return dynamicFont("BrandonGrotesque", style, size) 
} 

private func dynamicFont(name: String, style: String, size: CGFloat) -> UIFont { 
    var dynamicSize = size 

    // Increase our font size for iPhone 6, 6+ and above 
    if screenSize.width >= DEVICE_WIDTH_6PLUS { 
     dynamicSize += 3.0 
    } else if screenSize.width >= DEVICE_WIDTH_6 { 
     dynamicSize += 2.0 
    } 

    return UIFont(name: "\(name)-\(style)", size: dynamicSize)! 
} 
+0

Пожалуйста, обратитесь к ссылке: [Dynamic Размер шрифта для UILabel] (https://stackoverflow.com/questions/47504186/how-to-increase-fonts-and-sizes -on-plus-device-in-swift/47508648 # 47508648) – Datt1994

ответ

0

У меня был один и тот же вопрос в одном из моих проектов. Нам нужны шрифты в том же соотношении, что и устройство. Так вот что я сделал для своего проекта.

#define IPHONE6PLUS_HEIGHT 736 
#define AVENIR_LTPRO @"AvenirLTPro-Medium" 
#define kFONTSize(sizeF) (([UIScreen mainScreen].bounds.size.height/IPHONE6PLUS_HEIGHT) * sizeF) 
#define kFONT_AVNR_LTPRO(sizeF) [UIFont fontWithName:AVENIR_LTPRO size:kFONTSize(sizeF)] 

И при использовании я дал размер шрифта iPhone 6+. Это экономит много кодирования и вычислений. Здесь код:

txtView.font = kFONT_AVNR_LTPRO(17.57f); 

Он будет управлять размерами шрифтов для всех размеров экрана и будущих устройств. Надеюсь, что это поможет вам .. :)

+0

Эй, спасибо за ваш ответ! Вы когда-нибудь сталкивались с проблемами с «заполнением»? Основная проблема заключается в том, что наши поля «поля» не связаны с размером шрифта, поэтому маржи остаются неизменными при увеличении размера шрифта. Попытка выяснить, есть ли способ решить эту проблему. – ndbroadbent