2017-01-23 3 views
0
import Foundation 
import UIKit 


extension NSMutableAttributedString { 

    @discardableResult 
    public func setAsLink(textToFind: NSMutableAttributedString, linkURL: String) -> Bool { 

     let foundRange = self.mutableString.range(of: textToFind) 
     if foundRange.location != NSNotFound { 
      self.addAttribute(NSLinkAttributeName, value: linkURL, range: foundRange) 
      return true 
     } 
     return false 
    } 
} 



@IBDesignable 
class SignUpLabel: UILabel { 

    override func layoutSubviews() { 
     super.layoutSubviews() 

     let normalText = "Don't have an account yet? " 
     let normalString = NSMutableAttributedString(string: normalText) 

     let boldText = "Sign up now!" 
     let attrs = [NSFontAttributeName : UIFont.boldSystemFont(ofSize: 14)] 
     let attributedString = NSMutableAttributedString(string: boldText, attributes: attrs) 

     normalString.append(attributedString) 

     self.attributedText = normalString 

     normalString.setAsLink(textToFind: attributedString, linkURL: "http://www.someaddress.com") 

    } 

} 

let foundRange = self.mutableString.range(of: textToFind) требует строк, но я объявил его как NSMutableAttributedString, так что я мог бы добавить вес к определенной части этикетки.Часть щелчки этикетки и смелая одновременно

Я не могу понять это. Может кто-нибудь, пожалуйста, помогите мне с исправлением? Я был бы очень признателен.

ответ

0

NSMutableAttributedString имеет свойство под названием string. Чтобы получить доступ к нему и разрешить поиск, используйте в качестве аргумента yourMutableAttributedString.string.

Смежные вопросы