iOS: 富文字AttributedString的詳解
AttributedString可以分為NSAttributedString和NSMutableAttributedString兩種,在使用中通過把AttributedString賦值給控制元件的attributedText
屬性來新增文字樣式。具有該屬性的控制元件有UILabel、UITextField和UITextView。
首先,初始化:
NSString *string = @"這是一個富文字字串";
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string ];
然後,根據API中屬性順序依次詳細說明:
No.1 字型
[attributedString addAttribute:NSFontAttributeName
value:[UIFont systemFontOfSize:30.0f]
range:NSMakeRange(4, 3)];
No.2 段落
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
//行間距
paragraphStyle.lineSpacing = 5.f;
//段落間距
paragraphStyle.paragraphSpacing = 5.f;
//段落縮排畫素
paragraphStyle.firstLineHeadIndent = 25.f;
//整體縮排畫素
paragraphStyle.headIndent = 10.f;
//對齊方式
paragraphStyle.alignment = NSTextAlignmentLeft;
//段落[其他屬性參照NSMutableParagraphStyle]
[attributedString addAttribute:NSParagraphStyleAttributeName
value:paragraphStyle
range:NSMakeRange(0 , attributedString.length)];
No.3 前景色
[attributedString addAttribute:NSForegroundColorAttributeName
value:[[UIColor redColor]
range:NSMakeRange(4, 3)];
No.4 背景色
[attributedString addAttribute:NSBackgroundColorAttributeName
value:[UIColor redColor]
range:NSMakeRange(4, 3)];
No.5 連字元
string = @"flash player";
attributedString = [[NSMutableAttributedString alloc] initWithString:string];
[attributedString addAttribute:NSLigatureAttributeName
value:@1
range:NSMakeRange(0, 5)];
[attributedString addAttribute:NSFontAttributeName
value:[UIFont fontWithName:@"futura" size:30]
range:NSMakeRange(0, 5)];
No.6 文字間距
[attributedString addAttribute:NSKernAttributeName
value:@10
range:NSMakeRange(3, 4)];
No.7 刪除線
[attributedString addAttribute:NSStrikethroughStyleAttributeName
value:@(NSUnderlinePatternSolid | NSUnderlineStyleSingle)
range:NSMakeRange(4, 3)];
[attributedString addAttribute:NSBaselineOffsetAttributeName
value:@1
range:NSMakeRange(4, 3)];
[attributedString addAttribute:NSStrikethroughColorAttributeName
value:[UIColor redColor]
range:NSMakeRange(4, 3)];
No.8 下劃線
//下劃線
[attributedString addAttribute:NSUnderlineStyleAttributeName
value:@(NSUnderlineStyleSingle)
range:NSMakeRange(4, 3)];
//下劃線顏色
[attributedString addAttribute:NSUnderlineColorAttributeName
value:[UIColor redColor]
range:NSMakeRange(4, 3)];
No.9 空心字
//描邊顏色需和描邊寬度一起使用
[attributedString addAttribute:NSStrokeColorAttributeName
value:[UIColor redColor]
range:NSMakeRange(4, 3)];
[attributedString addAttribute:NSStrokeWidthAttributeName
value:@1.5
range:NSMakeRange(4, 3)];
No.10 陰影
NSShadow *shadow = [[NSShadow alloc] init];
shadow.shadowOffset = CGSizeMake(0, 1);
shadow.shadowBlurRadius = 2;
shadow.shadowColor = [UIColor greenColor];
[attributedString addAttribute:NSShadowAttributeName
value:shadow
range:NSMakeRange(4, 3)];
No.11 圖文混排
NSTextAttachment *textAttachment = [[NSTextAttachment alloc] init];
textAttachment.image = [UIImage imageNamed:@"emotion_0"];
textAttachment.bounds = CGRectMake(0, -6, 30, 30);
NSAttributedString *attachmentAttrStr = [NSAttributedString attributedStringWithAttachment:textAttachment];
[attributedString insertAttributedString:attachmentAttrStr atIndex:7];
No.12 連結
attributedString = [[NSMutableAttributedString alloc] initWithString:@"這是一個網址:https://github.com/dexianyinjiu"];
[attributedString addAttribute:NSLinkAttributeName
value:@"https://github.com/dexianyinjiu"
range:NSMakeRange(7, attributedString.length-7)];
No.13 基線偏移
[attributedString addAttribute:NSBaselineOffsetAttributeName
value:@(10.f)
range:NSMakeRange(4, 3)];
No.14 傾斜
[attributedString addAttribute:NSObliquenessAttributeName
value:@(0.5f)
range:NSMakeRange(4, 3)];
No.15 拉伸/壓縮
[attributedString addAttribute:NSExpansionAttributeName
value:@(0.5f)
range:NSMakeRange(4, 3)];
No.16 書寫方向
[attributedString addAttribute:NSWritingDirectionAttributeName
value:@[@(NSWritingDirectionRightToLeft | NSWritingDirectionOverride)]
range:NSMakeRange(0, attributedString.length)];
No.17 橫/豎向排版
//0:橫向排版 其他:豎向排版
[attributedString addAttribute:NSVerticalGlyphFormAttributeName
value:@1
range:NSMakeRange(0, attributedString.length)];
相關推薦
iOS: 富文字AttributedString的詳解
AttributedString可以分為NSAttributedString和NSMutableAttributedString兩種,在使用中通過把AttributedString賦值給控制元件的attributedText屬性來新增文字樣式。具有該屬性的控制元
百度編輯器UEEDITOR使用簡單介紹 UEditor表單提交和後臺互動詳解 最後更新對應的版本:1.2.5.1 教程描述: 富文字編輯器的使用開發中,表單提交有多種場景,編輯器初始化有新增文章和編輯
UEditor表單提交和後臺互動詳解最後更新對應的版本:1.2.5.1 教程描述: 富文字編輯器的使用開發中,表單提交有多種場景,編輯器初始化有新增文章和編輯就文章兩種場景,提交表單有普通提交也有ajax提交表單兩種情景,此教程詳細講解這幾種場景下如何保證後臺正確拿到資料。 一、編輯器內容初始化(即往編
iOS開發之再探多執行緒程式設計:Grand Central Dispatch詳解
Swift3.0相關程式碼已在github上更新。之前關於iOS開發多執行緒的內容釋出過一篇部落格,其中介紹了NSThread、操作佇列以及GCD,介紹的不夠深入。今天就以GCD為主題來全面的總結一下GCD的使用方式。GCD的歷史以及好處在此就不做過多的贅述了。本篇部落格會通過一系列的例項來好好的總結一下GC
視訊記憶體文字模式詳解 ———《x86組合語言:從真實模式到保護模式》讀書筆記補遺02
文章修改記錄 修改日期 修改內容 2018-2-4 修改了一處錯別字;增加了表格的使用方法 今天我們討論如何程式設計以在螢幕上顯示出彩色的文字。 為了顯示文字,通常需要兩種硬體——顯示器和顯示卡。 顯示卡的作用是為顯示器
ASP.NET MVC5 新特性:Attribute路由使用詳解
ref 否則 back default static 引入 擁有 bsp pathinfo 1、什麽是Attribute路由?怎麽樣啟用Attribute路由? 微軟在 ASP.NET MVC5 中引入了一種新型路由:Attribute路由,顧名思義,Attribute
深入理解JAVA I/O系列三:字符流詳解
buffer 情況 二進制文件 感到 復制代碼 使用範圍 轉換 fileread 方式 字符流為何存在 既然字節流提供了能夠處理任何類型的輸入/輸出操作的功能,那為什麽還要存在字符流呢?容我慢慢道來,字節流不能直接操作Unicode字符,因為一個字符有兩個字節,字節流一次只
轉載:centos安裝gitlab詳解
smtp發送郵件 下載 ror mage package nload git clone 輸入 clas 原文地址:http://blog.csdn.net/jiangtao_st/article/details/73612298 一, 服務器快速搭建gitlab方法 可以
Java虛擬機:內存模型詳解
調用 數據類型 可擴展 空間 共享 sof 虛擬機 進程 部分 版權聲明:本文為博主原創文章,轉載請註明出處,歡迎交流學習! 我們都知道,當虛擬機執行Java代碼的時候,首先要把字節碼文件加載到內存,那麽這些類的信息都存放在內存中的哪個區域呢?當我們創建一個
Spring Boot系列教程四:配置文件詳解properties
date int ava ota axu return 端口 rand work 一.配置隨機數,使用隨機數 在application.properties文件添加配置信息 1 #32位隨機數 2 woniu.secret=${random.value} 3 #隨機整數
轉:HttpModule與HttpHandler詳解
兩個 pro 密碼 work ring eve directory 配置信息 讓其 ASP.NET對請求處理的過程:當請求一個*.aspx文件的時候,這個請求會被inetinfo.exe進程截獲,它判斷文件的後綴(aspx)之後,將這個請求轉交給 ASPNET_ISAPI.
小程序學習筆記二:頁面文件詳解之 .json文件
fresh 小程序 整體 屬性 spa hit rbac style mdi 頁面配置文件—— pageName.json 每一個小程序頁面可以使用.json文件來對本頁面的窗口表現進行配置,頁面中配置項會覆蓋 app.json 的 window 中相同的配置
Android進階筆記:AIDL內部實現詳解 (二)
ucc == 筆記 null stack 直接 android 最好 public 接著上一篇分析的aidl的流程解析。知道了aidl主要就是利用Ibinder來實現跨進程通信的。既然是通過對Binder各種方法的封裝,那也可以不使用aidl自己通過Binder來實現跨進
hibernate框架學習筆記2:配置文件詳解
格式化 version validate ret root 主鍵生成策略 -m color 格式 實體類: package domain; public class Customer { private Long cust_id; priva
Node入門教程(8)第六章:path 模塊詳解
format QQ 調用 保留 微軟 posix interface join 結果 path 模塊詳解 path 模塊提供了一些工具函數,用於處理文件與目錄的路徑。由於windows和其他系統之間路徑不統一,path模塊還專門做了相關處理,屏蔽了彼此之間的差異。 可移
IP地址和子網劃分學習筆記之《知識學習篇:子網劃分詳解》
子網掩碼 IP地址 子網劃分 在學習掌握了前面的IP地址和子網劃分之《進制計數》和IP地址和子網劃分之《IP地址詳解》這兩部分知識後,接下來將學習子網劃分。 一、子網掩碼 要學習子網劃分,首先就要必須知道子網掩碼,只有掌握了子網掩碼這部分內容,才能很好的理解和劃分子網。 1、子網掩碼介紹 子網掩碼
華為交換機私有hybird接口模式:(案例+原理詳解)
華為 hybird 華為交換機私有hybird接口模式:(案例+原理詳解) 實驗說明: 準備:如圖pc1 pc2同屬於VLAN10,配置相應的ippc3 pc4同屬於VLAN20 配置相應的ipClient 屬於 VLAN30 配置pc1同網段ipPc1 pc2 client 屬於同網段
雲計算Python自動化:Python變量詳解
雲計算python學習過程中會用到許多數據,那為了方便操作,需要把這些數據分別用一個簡單的名字代表,方便在接下來的程序中引用。 變量就是代表某個數據(值)的名稱。簡單點說變量就是給數據起個名字 變量名稱的命名: 由字母數字下劃線組成的,且不能以數字開頭,不能使用關鍵字,區分大小寫。 命名慣例: 以單一下劃
java基礎之JDBC一:概述及步驟詳解
etx fileread 操作 [] 全路徑 api mysql edi lean 1. JDBC的簡介 概述: 就是Java用來操作不同數據庫(DBMS)的類庫(技術), 本質就是一些類和接口. /* 類: Dri
Spark核心RDD:combineByKey函數詳解
sta 3.0 vbscript map ner 初始化 partition 得到 new https://blog.csdn.net/jiangpeng59/article/details/52538254 為什麽單獨講解combineByKey? 因為comb
iOS培訓就業前景分析詳解
ios ui設計 流行 ext -o 設備 水平 shadow 基於 OS是目前最為流行、最熱門的操作系統之一,在全球有著不可替代的地位,雖然在中國,android的市場占有率與iOS想比較要高的多,但是iOS系統的蘋果手機在中國也屬於高端品牌。從品牌以及系統技術含量上來看