Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在iPhone 5S和6 Plus上,我应该如何处理不同的字体大小?_Ios_Iphone_Autolayout_Autoresize_Iphone 6 Plus - Fatal编程技术网

Ios 在iPhone 5S和6 Plus上,我应该如何处理不同的字体大小?

Ios 在iPhone 5S和6 Plus上,我应该如何处理不同的字体大小?,ios,iphone,autolayout,autoresize,iphone-6-plus,Ios,Iphone,Autolayout,Autoresize,Iphone 6 Plus,我们在5S中使用的字体大小为12pt,但在6plus中,字体太小,无法阅读。因此,我们需要在6+上将字体大小增加到15磅,但是我们的填充和边距都被弄乱了,因为我们在自动布局约束中使用了一些硬编码的偏移量 我尝试过移除6和6+发射图像以强制“缩放”,但这并不理想。我们确实希望我们的一些内容更小,以利用更高的分辨率 我只是想知道其他iOS开发者在做什么?您是否设置了动态字体大小和填充 我刚刚用Swift编写了这个小助手文件,但不确定这是否是最好的方法: let DEVICE_WIDTH_5S: CG

我们在5S中使用的字体大小为12pt,但在6plus中,字体太小,无法阅读。因此,我们需要在6+上将字体大小增加到15磅,但是我们的填充和边距都被弄乱了,因为我们在自动布局约束中使用了一些硬编码的偏移量

我尝试过移除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)!
}

我在我的一个项目中遇到了同样的问题。我们需要字体和设备的比例完全相同。这就是我为我的项目所做的

#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); 
它将管理所有屏幕大小和未来设备的字体大小。
希望它能帮助你……)

嘿,谢谢你的回复!你有没有遇到过“填充”的问题?主要问题是,我们的容器“边距”与字体大小无关,因此边距在字体大小增加时保持不变。试图找出是否有解决方法请参考以下链接: