some changes made. More to come.
This commit is contained in:
parent
5351c31b1c
commit
38912a4f85
@ -254,16 +254,16 @@ public typealias ActionBlock = () -> ()
|
||||
attributedString.removeAttribute(.foregroundColor, range: range)
|
||||
attributedString.addAttribute(.foregroundColor, value: UIColor.mfGet(forHex: colorHex), range: range)
|
||||
}
|
||||
case "icon":
|
||||
case "image":
|
||||
let fontSize = attribute["size"] as? CGFloat ?? label.font.pointSize
|
||||
let iconName = attribute["iconName"] as? String ?? "externalLink"
|
||||
let imageURL = attribute["image"] as? String
|
||||
let imageName = attribute["name"] as? String ?? "externalLink"
|
||||
let imageURL = attribute["URL"] as? String
|
||||
let imageAttachment: NSTextAttachment
|
||||
|
||||
if let url = imageURL, let label = label as? Label {
|
||||
imageAttachment = Label.getTextAttachmentFrom(url: url, dimension: fontSize, label: label)
|
||||
} else {
|
||||
imageAttachment = Label.getTextAttachmentImage(name: iconName, dimension: fontSize)
|
||||
imageAttachment = Label.getTextAttachmentImage(name: imageName, dimension: fontSize)
|
||||
}
|
||||
|
||||
let mutableString = NSMutableAttributedString()
|
||||
@ -382,7 +382,7 @@ public typealias ActionBlock = () -> ()
|
||||
|
||||
// Loop the original attributed string, resize the image attachments.
|
||||
originalAttributedString.enumerateAttribute(.attachment, in: NSRange(location: 0, length: originalAttributedString.length), options: []) { value, range, stop in
|
||||
if value is NSTextAttachment, let attachment = value as? NSTextAttachment,
|
||||
if let attachment = value as? NSTextAttachment,
|
||||
let stylerSize = MFStyler.sizeObjectGeneric(forCurrentDevice: attachment.bounds.width)?.getValueBased(onSize: size) {
|
||||
|
||||
let dimension = round(stylerSize)
|
||||
@ -471,14 +471,16 @@ public typealias ActionBlock = () -> ()
|
||||
let imageAttachment = NSTextAttachment()
|
||||
imageAttachment.bounds = CGRect(x: 0, y: 0, width: dimension, height: dimension)
|
||||
|
||||
DispatchQueue.main.async {
|
||||
DispatchQueue.global(qos: .default).async {
|
||||
|
||||
guard let url = URL(string: url),
|
||||
let data = try? Data(contentsOf: url)
|
||||
else { return }
|
||||
|
||||
imageAttachment.image = UIImage(data: data)
|
||||
label.setNeedsDisplay()
|
||||
DispatchQueue.main.sync {
|
||||
label.setNeedsDisplay()
|
||||
}
|
||||
}
|
||||
|
||||
return imageAttachment
|
||||
@ -595,10 +597,9 @@ extension Label {
|
||||
@objc private func textLinkTapped(_ gesture: UITapGestureRecognizer) {
|
||||
|
||||
for clause in clauses {
|
||||
guard let range = clause.range else { return }
|
||||
|
||||
// This determines if we tapped on the desired range of text.
|
||||
if gesture.didTapAttributedTextInLabel(self, inRange: range) {
|
||||
if let range = clause.range, gesture.didTapAttributedTextInLabel(self, inRange: range) {
|
||||
clause.performAction()
|
||||
return
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user