Ios 如何使用UIView在swift中显示字体的字体规则?
我试图直观地描述字体中使用的指南。这包括下降、上升、中间带、基线和高度 我使用Ios 如何使用UIView在swift中显示字体的字体规则?,ios,uiview,uifont,Ios,Uiview,Uifont,我试图直观地描述字体中使用的指南。这包括下降、上升、中间带、基线和高度 我使用majorLabel的字体属性获取所有数据。我已经检查过了,从中发现了一些与我的概念相似的东西(非常感谢) 在上面的代码中,五个UIView的全屏宽度和高度仅为1,以绘制一条清晰的小线条 我希望得到与下图类似的结果来显示该行 我已经得到了正确的结果,希望它尽可能准确。上面的代码是渲染线条的正确方法吗 // Labels @IBOutlet weak var majorLabel: UILabel! @IBOutlet
majorLabel
的字体属性获取所有数据。我已经检查过了,从中发现了一些与我的概念相似的东西(非常感谢)
在上面的代码中,五个UIView的全屏宽度和高度仅为1,以绘制一条清晰的小线条
我希望得到与下图类似的结果来显示该行
我已经得到了正确的结果,希望它尽可能准确。上面的代码是渲染线条的正确方法吗
// Labels
@IBOutlet weak var majorLabel: UILabel!
@IBOutlet weak var minorLabel: UILabel!
// Font guide lines
@IBOutlet weak var ascender: UIView!
@IBOutlet weak var capHeight: UIView!
@IBOutlet weak var xHeight: UIView!
@IBOutlet weak var baseLine: UIView!
@IBOutlet weak var descender: UIView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
/* This part sets up the baseline of two different fonts */
majorLabel.sizeToFit()
minorLabel.sizeToFit()
var changedFrame = minorLabel.frame
changedFrame.origin.y = CGFloat(ceilf(
Float(majorLabel.frame.origin.y) + Float(majorLabel.font.ascender - minorLabel.font.ascender)
))
minorLabel.frame = changedFrame
//minorLabel.center.x = majorLabel.center.x
//print(majorLabel.center.x)
//print(minorLabel.center.x)
/* This section handles about capturing the font specific properties. */
//baseLine.frame.origin.y = changedFrame.origin.y
let baseLineLocation = majorLabel.frame.origin.y + majorLabel.font.ascender
let medianLocation = majorLabel.frame.origin.y + majorLabel.font.xHeight
let capHeightLocation = baseLineLocation - majorLabel.font.capHeight
let descenderLocation = baseLineLocation - majorLabel.font.descender
let ascenderLocation = baseLineLocation - majorLabel.font.ascender
print("Ascender: \(majorLabel.font.ascender)")
print("Cap height: \(majorLabel.font.capHeight)")
print("Median: \(majorLabel.font.xHeight)")
print("Descender: \(majorLabel.font.descender)")
baseLine.frame.origin.y = baseLineLocation
xHeight.frame.origin.y = medianLocation
capHeight.frame.origin.y = capHeightLocation
descender.frame.origin.y = descenderLocation
ascender.frame.origin.y = ascenderLocation
}