1. 程式人生 > >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];
    [email protected][@(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);
    }];


相關推薦

ios-AttributedString新增屬性以及如何

有的時候我們可能會需要給AttributedString也就是屬性字串設定屬性,然後在另外一個地方進行處理,我們也可以通過這個方式進行傳值,具體操作可以如下所示這裡我們是先建立一個數組,建立完畢之後,我們再去通過設定屬性,這樣我們可以在另外一個地方可以去獲取到它的值,然後通

jquery如何物件動態新增屬性以及選擇器、事件的繫結

在工作用要用到給jd物件動態新增屬性的要求,在網上找到了一種解決方式,例項如下: 1、demo var aa="maker"; var bb=123; var lists={}; eval("lists."+aa+"="+bb); eval('('+"lists."+aa

iOS中OCCategory新增屬性

引: 很多人知道可以用Category給已有的類新增一些新方法,但是不同於swift中的extension,Objective-C中的Category(類別)是不支援直接新增屬性的,那如果就是需要新增新的屬性怎麼辦呢?有一個辦法,使用Runtime中的關聯物件

Python :動態例項新增屬性的方法

#動態給例項新增屬性的方法 from types import MethodType #動態新增屬性 class Person(object) : pass per = Person() #動態新增屬性,靈活 per.name = "Tom" print(per.name)

呼叫物件的方法,物件新增屬性,獲取物件的屬性

class Cat: # 屬性 # 方法 def eat(self): print(“貓在吃魚…”) def drink(self): print("貓在喝可樂...") #建立了一個物件 tom = Cat() tom.eat() # 呼叫物件的eat方法 tom.dri

如何 文章 新增 標籤 以及 如何 讓 js 中的資料 跟隨 form 表單 一起提交到 後臺

設計思路 檔案和,標籤的關係,多對多的關係。 需要一個標籤表,和,文章標籤中間表。 文章和,標籤的關係,多對多的關係。 一個標籤對應多篇文章,一篇文章對應多個標籤 。 標籤,增刪改查,可以在後臺管理。 這個文章標籤中間表,是如果1篇文章有幾個標籤,就有幾條資料,只是對應同一個文章id

iOS Runtime 動態新增屬性不能新增intrinsic型別

- (void)setIsThreeDimensionalMap:(BOOL)isThreeDimensionalMap{ objc_setAssociatedObject(self, @"is

Objective-C 分類新增屬性——關聯物件

給分類新增屬性   咱們知道,分類中可以新增方法,卻無法新增例項變數。那咱們有什麼方法在既有類中存放自定義資料呢? 先來看看下面這段程式碼: @interface UIView (nl_Frame) @property (nonatomic, assi

iOS按鈕新增系統聲音

/*********更多聲音請參考**********/ AudioServices AudioServices is a group of C functions in AudioToolbox for playing short (≤30 seconds) sounds. Predefined sound

物件新增屬性----Prototype原型物件

   給物件新增屬性 1 Object 物件:Object是所有物件的基礎,任何其他物件都是從Object擴充套件而來,或者說是繼承。這一切都是由“原型”來完成。 2 原型物件:原型是物件的一個屬性,也就是prototype內部的屬性,每個物件都有這個內部屬性,它本身也是一

iOS UITableView新增手勢衝突解決方案

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWith

iOS TableView新增Footer或Header

給TableView新增Footer或Header 下面僅以footer示例 - (CGFloat)tableView:(UITableView *)tableView heightForFoo

iOS可變陣列新增元素 以及可變陣列操作

今天在專案工程中想往可變陣列中新增從伺服器獲取的元素,我用了一下方法: 方法一: [self.arrM_Data addObjectsFromArray:arr]; 方法二: [self.a

IOS Label新增下劃線,刪除線,不同的顏色和大小

在iOS開發中,常常會有一段文字顯示不同的顏色和字型,或者給某幾個文字加刪除線或下劃線的需求。之前在網上找了一些資料,有的是重繪UILabel的textLayer,有的是用html5實現的,都比較麻煩,而且很多UILabel的屬性也不起作用了,效果都不理想。後來瞭解到NS

ios NSTimer新增Block回撥版本建立方法

// // NSTimer+Convenience.h // NSTimerBlockDemo // // Created by huangyibiao on 15/3/25. // Copy

iOS為類別新增屬性的方法(RunTime)

一般認為Category不能新增變數,其實系統已經告訴我們是可以的. 這傢伙已經給UIViewController添加了圖中的幾個屬性,那麼如何實現? 其實是使用@dynamic來動態新增的。 (

python語言是動態語言、新增屬性、方法、靜態方法和類方法、__slots__()、python中的生成器、yield的用法

程式在查詢變數的定義時遵循LEGB規則 LEGB規則: locals-->enclosing function-->globals-->builtins locals當前所在名稱空間的變數 enclosing外部巢狀函式的名稱空間(閉包中常見) globa

spring 通過property標籤物件新增屬性入門

User.java package cn.itcast.c_property; public class User { private int id; private String name; ////////////////// --> 通過容器注入

iOS--圖片新增水印

在iOS開發的過程中,有時需要給圖片新增水印,但UIImage並沒有提供直接的方法,下面我們給UIImage新增一個catgory,增加一個方法實現水印新增 使用方法:通過UIImage 直接呼叫,傳入的引數分別是:要新增水印的圖片,水印新增位置,一般是根據展示圖片的UIImageView確定,水印內容。

詳解Android/IOS平臺下抓包工具使用以及API介面

抓包工具 Charles 主機允許代理模式 客戶端設定代理 截獲資料包 HTTPS 模仿一個app