I was using ActiveLabel as third party library to make link in a label for particular words.The code works fine for Swift 3 & 3.2. but does not work for swift 4.
Below code i used
let customType1 = ActiveType.custom(pattern: "\\sTerms & Conditions\\b") //Looks for "are" labelTc.enabledTypes.append(customType1) labelTc.customize { (label) in labelTc.text = "UserAgreement".localized label.numberOfLines = 0 label.lineSpacing = 4 label.textColor = UIColor(red: 131 / 255, green: 147 / 255, blue: 168 / 255, alpha: 1) //Custom types label.customColor[customType1] = Constant.AppColor.greenMeadow label.customSelectedColor[customType1] = Constant.AppColor.greenMeadow label.configureLinkAttribute = { (type, attributes, isSelected) in var atts = attributes switch type { case customType1: atts[NSAttributedStringKey.font._rawValue as String] = UIFont(name: self.labelTc.font.fontName, size: 15.0) atts[NSAttributedStringKey.underlineStyle.rawValue] = NSUnderlineStyle.styleSingle break case .mention: break case .hashtag: break case .url: break case .custom(let pattern): break default : break } return atts }
Can anyone give me solution using native code instead of using third party library.
1 Answers
Answers 1
I was able to find out the solution for swift 4 as well.
label.configureLinkAttribute = { (type, attributes, isSelected) in var atts = attributes switch type { case customType1: atts[NSAttributedStringKey.font.rawValue] = UIFont(name: self.labelTc.font.fontName, size: 15.0) atts[NSAttributedStringKey.underlineStyle.rawValue] = NSUnderlineStyle.styleSingle.rawValue break default: () } return atts }
0 comments:
Post a Comment