当前位置: 移动技术网 > 移动技术>移动开发>IOS > ios-给AttributedString添加属性以及如何去取

ios-给AttributedString添加属性以及如何去取

2018年02月12日  | 移动技术网移动技术  | 我要评论

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);
    }];

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网