ios-给AttributedString添加属性以及如何去取
程序员文章站
2022-06-15 22:42:14
ios-给AttributedString添加属性以及如何去取,有的时候我们可能会需要给AttributedString也就是属性字符串设置属性,然后在另外一个地方进行处理,我们也...
ios-给AttributedString添加属性以及如何去取,有的时候我们可能会需要给AttributedString也就是属性字符串设置属性,然后在另外一个地方进行处理,我们也可以通过这个方式进行传值,具体操作可以如下所示这里我们是先创建一个数组,创建完毕之后,我们再去通过设置属性,这样我们可以在另外一个地方可以去获取到它的值,然后通过遍历可以做相应的操作。下面的一个方法这里面的range,传入的是一个地址,这样我们再把range给取出来就可以得到的是在下面这个index索引处所得到的属性的设置的范围,也可以这么解释effectiveRange参数是引用参数,该参数反映了在所检索的位置上,字符串中具有当前的属性的范围。
- (nullable id)attribute:(NSAttributedStringKey)attrName atIndex:(NSUInteger)location effectiveRange:(nullable NSRangePointer) range;
用法如下所示
NSArray * array = [[NSArray alloc]init]; array=@[@(1)]; NSMutableAttributedString * attributedText = [[NSMutableAttributedString alloc]init]; NSAttributedString * attributedString = [[NSAttributedString alloc]initWithString:@"哈哈哈"]; [attributedText appendAttributedString:attributedString]; NSAttributedString * attributedString1 = [[NSAttributedString alloc]initWithString:@"没没没"]; [attributedText appendAttributedString:attributedString1]; [attributedText addAttribute:@"NSAttributeKey" value:array range:NSMakeRange(0, 1)]; [attributedText enumerateAttributesInRange:NSMakeRange(0, attributedText.length) options:0 usingBlock:^(NSDictionary * _Nonnull attrs, NSRange range, BOOL * _Nonnull stop) { //NSLog(@"%@",attrs[@"NSAttributeKey"]); id value = [attributedText attribute:@"NSAttributeKey" atIndex:0 effectiveRange:NULL]; NSLog(@"%@",value); }];