ios - 标签顶部对齐

标签 ios swift user-interface

我正在尝试将温度放入我的应用程序中。我想这样展示它: enter image description here

但我所能得到的是:

enter image description here

我尝试使用这段代码来对齐顶部的两个标签:

@IBDesignable class TopAlignedLabel: UILabel {
    override func drawText(in rect: CGRect) {
        if let stringText = text {
            let stringTextAsNSString = stringText as NSString
            let labelStringSize = stringTextAsNSString.boundingRect(with: CGSize(width: self.frame.width,height: CGFloat.greatestFiniteMagnitude), options: NSStringDrawingOptions.usesLineFragmentOrigin, attributes: [NSFontAttributeName: font], context: nil).size
        super.drawText(in: CGRect(x:0,y: 0,width: self.frame.width, height:ceil(labelStringSize.height)))
        } else {
            super.drawText(in: rect)
        }
    }
}

它适用于“°C”,但不适用于 25。有人可以帮我找到解决问题的方法吗?

最佳答案

解决这个问题的一个非常简单的方法是使用属性字符串:

let tempText = "25˚C"
let baseFont = UIFont.systemFont(ofSize: 23.0)!
let superscriptFont = UIFont.systemFont(ofSize: 15.0)!
let attrStr = NSMutableAttributedString(string: tempText, attributes: [NSFontAttributeName: baseFont])
attrStr.addAttributes([NSFontAttributeName: superscriptFont, NSBaselineOffsetAttributeName: 10.0], range: NSMakeRange(2,2))

myLabel.attributedText = attrStr

您可以使用 addAttributes 方法在您想要的任何范围内添加更多不同的属性。

关于ios - 标签顶部对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46526442/

相关文章:

arrays - TableView 中的结构数组

ios - pod 安装时出现 LoadError

ios - Pushwoosh 远程通知

使用 MVVM 模式显示数组中的值的 SwiftUI 问题

swift - 反转 Swift 字典中值的键,收集重复值

macos - qt 5.8 os x 在 GUI 应用程序打开时捕获传递的参数

user-interface - 使用 GUI 浏览集市(或 CVS/SVN/Git)存储库?

Python:如何使用来自单独进程的变量更新 GUI,同时保持 GUI 交互性

ios - 在共享扩展中启用 Firebase 身份验证

具有奇怪行为的ios状态栏