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
    <NSAttributedStringKey,id> * _Nonnull attrs, NSRange range, BOOL * _Nonnull stop) {
        
        //NSLog(@"%@",attrs[@"NSAttributeKey"]);
        id value = [attributedText attribute:@"NSAttributeKey" atIndex:0 effectiveRange:NULL];
        NSLog(@"%@",value);
    }];


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值