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