mirror of
https://github.com/metabolist/metatext
synced 2024-12-20 14:32:48 +01:00
41 lines
1.2 KiB
Swift
41 lines
1.2 KiB
Swift
// Copyright © 2020 Metabolist. All rights reserved.
|
|
|
|
import UIKit
|
|
|
|
extension String {
|
|
private static let HTTPSPrefix = "https://"
|
|
|
|
func url() throws -> URL {
|
|
let url: URL?
|
|
|
|
if hasPrefix(Self.HTTPSPrefix) {
|
|
url = URL(string: self)
|
|
} else {
|
|
url = URL(string: Self.HTTPSPrefix + self)
|
|
}
|
|
|
|
guard let validURL = url else { throw URLError(.badURL) }
|
|
|
|
return validURL
|
|
}
|
|
|
|
func countEmphasizedAttributedString(count: Int, highlighted: Bool = false) -> NSAttributedString {
|
|
let countRange = (self as NSString).range(of: String.localizedStringWithFormat("%ld", count))
|
|
|
|
let attributed = NSMutableAttributedString(
|
|
string: self,
|
|
attributes: [
|
|
.font: UIFont.preferredFont(forTextStyle: .body),
|
|
.foregroundColor: highlighted ? UIColor.tertiaryLabel : UIColor.secondaryLabel
|
|
])
|
|
attributed.addAttributes(
|
|
[
|
|
.font: UIFont.preferredFont(forTextStyle: .headline),
|
|
.foregroundColor: highlighted ? UIColor.secondaryLabel : UIColor.label
|
|
],
|
|
range: countRange)
|
|
|
|
return attributed
|
|
}
|
|
}
|