gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:37:03 24 4
gpt4 key购买 nike

我们在 5S 上使用 12pt 的字体大小,但在 6 Plus 上字体很小且不可读。所以我们需要在 6 Plus 上将我们的字体大小增加到 15pt,但是我们的填充和边距都搞砸了,因为我们在我们的自动布局约束中使用了一些硬编码的偏移量。

我尝试删除 6 和 6 plus 启动图像以强制“缩放”,但这并不理想。我们实际上确实希望我们的一些内容更小,以利用更高的分辨率。

我只是想知道其他 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); 

它将管理所有屏幕尺寸和 future 设备的字体大小。希望对你有帮助..:)

关于ios - 我应该如何处理 iPhone 5S 和 6 Plus 上的不同字体大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28756158/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com