Ich habe den folgenden Code, aber meine Links sind immer blau. Wie kann ich die Farbe von ihnen ändern?
[_string addAttribute:NSLinkAttributeName value:tag range:NSMakeRange(position, length)];
[_string addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"HelveticaNeue-Bold" size:(12.0)] range:NSMakeRange(position, length)];
[_string addAttribute:NSStrokeColorAttributeName value:[UIColor greenColor] range:NSMakeRange(position, length)];
_string ist ein NSMutableAttributedString und die Position und Länge funktionieren einwandfrei.
Antworten:
Schnell
Aktualisiert für Swift 4.2
Verwenden Sie
linkTextAttributes
mit einemUITextView
textView.linkTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.green]
Und im Kontext:
let attributedString = NSMutableAttributedString(string: "The site is www.google.com.") let linkRange = (attributedString.string as NSString).range(of: "www.google.com") attributedString.addAttribute(NSAttributedString.Key.link, value: "https://www.google.com", range: linkRange) let linkAttributes: [NSAttributedString.Key : Any] = [ NSAttributedString.Key.foregroundColor: UIColor.green, NSAttributedString.Key.underlineColor: UIColor.lightGray, NSAttributedString.Key.underlineStyle: NSUnderlineStyle.single.rawValue ] // textView is a UITextView textView.linkTextAttributes = linkAttributes textView.attributedText = attributedString
Ziel c
Verwenden Sie
linkTextAttributes
mit einemUITextView
textView.linkTextAttributes = @{NSForegroundColorAttributeName:[UIColor greenColor]};
Quelle: diese Antwort
Und aus diesem Beitrag :
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"This is an example by @marcelofabri_"]; [attributedString addAttribute:NSLinkAttributeName value:@"username://marcelofabri_" range:[[attributedString string] rangeOfString:@"@marcelofabri_"]]; NSDictionary *linkAttributes = @{NSForegroundColorAttributeName: [UIColor greenColor], NSUnderlineColorAttributeName: [UIColor lightGrayColor], NSUnderlineStyleAttributeName: @(NSUnderlineStyleSingle)}; // assume that textView is a UITextView previously created (either by code or Interface Builder) textView.linkTextAttributes = linkAttributes; // customizes the appearance of links textView.attributedText = attributedString; textView.delegate = self;
quelle
Die Linkfarbe ist die Farbtonfarbe der Beschriftung / Textansicht. Sie können es also ändern, indem Sie die Farbtonfarbe der Ansicht ändern. Dies funktioniert jedoch nicht, wenn Sie unterschiedliche Linkfarben in derselben Ansicht wünschen.
quelle
Schnell
let str = "By using this app you agree to our Terms and Conditions and Privacy Policy" let attributedString = NSMutableAttributedString(string: str) var foundRange = attributedString.mutableString.rangeOfString("Terms and Conditions") attributedString.addAttribute(NSLinkAttributeName, value: termsAndConditionsURL, range: foundRange) foundRange = attributedString.mutableString.rangeOfString("Privacy Policy") attributedString.addAttribute(NSLinkAttributeName, value: privacyURL, range: foundRange) policyAndTermsTextView.attributedText = attributedString policyAndTermsTextView.linkTextAttributes = [NSForegroundColorAttributeName : UIColor.blueColor()]
quelle
NSAttributedString* attributedString = [[NSAttributedString alloc] initWithString:@"here" attributes:@{ @"myCustomTag" : @(YES), NSForegroundColorAttributeName:[UIColor whiteColor], NSFontAttributeName:[UIFont fontWithName:@"SourceSansPro-Semibold" size:15], NSUnderlineStyleAttributeName : @(NSUnderlineStyleSingle) }];
Ziel c
Dadurch wird unterstrichener weißer anklickbarer Text angezeigt. Wählen Sie die erforderlichen Attribute für Ihren Code aus und verwenden Sie ihn.
Um eine Zeichenfolge mit anklickbarem Link zu haben, gehen Sie wie folgt vor:
NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:@"Click " attributes:@{NSForegroundColorAttributeName:[UIColor whiteColor], NSFontAttributeName:[UIFont fontWithName:@"SourceSansPro-Semibold" size:15]}]; NSAttributedString* attributedString = [[NSAttributedString alloc] initWithString:@"here" attributes:@{ @"myCustomTag" : @(YES), NSForegroundColorAttributeName:[UIColor whiteColor], NSFontAttributeName:[UIFont fontWithName:@"SourceSansPro-Semibold" size:15], NSUnderlineStyleAttributeName : @(NSUnderlineStyleSingle) }]; [string appendAttributedString:attributedString];
Als Ergebnis erhalten Sie die Zeichenfolge "Klicken Sie hier" und "hier" ist ein Link. Sie können für jede Zeichenfolge unterschiedliche Stile festlegen.
quelle
Für swift3.0
override func viewDidLoad() { super.viewDidLoad() let linkAttributes = [ NSLinkAttributeName: NSURL(string: "http://stalwartitsolution.co.in/luminutri_flow/terms-condition")! ] as [String : Any] let attributedString = NSMutableAttributedString(string: "Please tick box to confirm you agree to our Terms & Conditions, Privacy Policy, Disclaimer. ") attributedString.setAttributes(linkAttributes, range: NSMakeRange(44, 18)) attributedString.addAttribute(NSUnderlineStyleAttributeName, value: NSNumber(value: 1), range: NSMakeRange(44, 18)) textview.delegate = self textview.attributedText = attributedString textview.linkTextAttributes = [NSForegroundColorAttributeName: UIColor.red] textview.textColor = UIColor.white } func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool { return true }
quelle