ios-給AttributedString添加屬性以及如何去取 – iPhone手機開發 iPhone軟體開發教學課程

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

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *