는 UILabel의에 .attributedText 속성이 있습니다. 이 같은 텍스트를 만들어야합니다 :
let hoursNumber = 6
let hoursUnit = "h"
let minutesNumber = 40
let minutesUnit = "m"
let numberFont = [ NSFontAttributeName: UIFont.systemFont(ofSize: 20) ]
let unitFont = [ NSFontAttributeName: UIFont.systemFont(ofSize: 14) ]
let timeString = NSMutableAttributedString(string: "\(hoursNumber)", attributes: numberFont)
timeString.append(NSAttributedString(string: hoursUnit, attributes: unitFont))
timeString.append(NSAttributedString(string: "\(minutesNumber)", attributes: numberFont))
timeString.append((NSAttributedString(string: minutesUnit, attributes: unitFont)))
그런 다음 설정 당신이 timeLabel.attributedText = TIMESTRING
편집이 ..., 까다 롭고 까다 롭고 )
let formatter = DateComponentsFormatter()
formatter.allowedUnits = [.hour, .minute]
formatter.unitsStyle = .abbreviated
formatter.zeroFormattingBehavior = .pad
let unitFont = [NSFontAttributeName: UIFont.systemFont(ofSize: 14)]
let numberFont = [NSFontAttributeName: UIFont.systemFont(ofSize: 22)]
let time = formatter.string(from: 300)
let timeString = NSMutableAttributedString()
for letter in time!.unicodeScalars {
let timeLetter : NSAttributedString
if CharacterSet.decimalDigits.contains(letter) {
timeLetter = NSAttributedString(string: "\(letter)", attributes: numberFont)
} else {
timeLetter = NSAttributedString(string: "\(letter)", attributes: unitFont)
}
timeString.append(timeLetter)
}
출처
2016-10-03 19:02:05
Zig
이 있습니다 NSAttributedString은 형식이 지정된 문자열의 숫자 범위를 찾아 특성 문자열의 해당 부분에 특성을 적용하여 만들어야합니다. – rmaddy
숫자의 범위는 어떻게 알 수 있습니까? 이것이 당신의 대답의 열쇠입니다. – alpennec