gpt4 book ai didi

ios - 在 iOS 中检测井号标签#,提及标签@,就像在 Twitter 应用程序中一样

转载 作者:可可西里 更新时间:2023-11-01 05:01:00 25 4
gpt4 key购买 nike

我需要检测描述 UILabel 中给出的 #Tags 并将文本颜色更改为 [UIColor BlueColor]; 我无法做到的地方将 UILabel 中的特定文本颜色更改为蓝色。现在我在自定义 UITableViewCell 中使用此 UILabel。有什么方法可以解决这个问题,通过文本颜色区分 #Tags 和普通文本?谁能帮我解决这个问题?

最佳答案

-(NSMutableAttributedString*)decorateTags:(NSString *)stringWithTags{


NSError *error = nil;

//For "Vijay #Apple Dev"
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"#(\\w+)" options:0 error:&error];

//For "Vijay @Apple Dev"
//NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"@(\\w+)" options:0 error:&error];

NSArray *matches = [regex matchesInString:stringWithTags options:0 range:NSMakeRange(0, stringWithTags.length)];
NSMutableAttributedString *attString=[[NSMutableAttributedString alloc] initWithString:stringWithTags];

NSInteger stringLength=[stringWithTags length];

for (NSTextCheckingResult *match in matches) {

NSRange wordRange = [match rangeAtIndex:1];

NSString* word = [stringWithTags substringWithRange:wordRange];

//Set Font
UIFont *font=[UIFont fontWithName:@"Helvetica-Bold" size:15.0f];
[attString addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, stringLength)];


//Set Background Color
UIColor *backgroundColor=[UIColor orangeColor];
[attString addAttribute:NSBackgroundColorAttributeName value:backgroundColor range:wordRange];

//Set Foreground Color
UIColor *foregroundColor=[UIColor blueColor];
[attString addAttribute:NSForegroundColorAttributeName value:foregroundColor range:wordRange];

NSLog(@"Found tag %@", word);

}

// Set up your text field or label to show up the result

// yourTextField.attributedText = attString;
//
// yourLabel.attributedText = attString;

return attString;
}

enter image description here

关于ios - 在 iOS 中检测井号标签#,提及标签@,就像在 Twitter 应用程序中一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24359972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com