iOS-NSAttributedString

来源:http://www.cnblogs.com/soley/archive/2016/06/10/5571329.html
-Advertisement-
Play Games

一、NSAttributeString簡介 NSAttributedString叫做富文本,是一種帶有屬性的字元串,通過它可以輕鬆的在一個字元串中表現出多種字體、字型大小、字體大小等各不相同的風格,還可以對段落進行格式化。 二、字元屬性 1.NSString *const NSFontAttribute ...


一、NSAttributeString簡介

  NSAttributedString叫做富文本,是一種帶有屬性的字元串,通過它可以輕鬆的在一個字元串中表現出多種字體、字型大小、字體大小等各不相同的風格,還可以對段落進行格式化。

二、字元屬性

  1.NSString *const NSFontAttributeName(字體):

  該屬性所對應的值是一個 UIFont 對象。該屬性用於改變一段文本的字體。如果不指定該屬性,則預設為12-point Helvetica(Neue)。

  2.NSString *const NSParagraphStyleAttributeName(段落)

  該屬性所對應的值是一個 NSParagraphStyle 對象。該屬性在一段文本上應用多個屬性。如果不指定該屬性,則預設為 NSParagraphStyle 的 defaultParagraphStyle 方法返回的預設段落屬性。想要瞭解NSParagraphStyle可以自行百度學習,在這裡不詳細描述。註意:lable的numberOfLines屬性必須設置為0,段落樣式才能生效。

 

  3.NSString *const NSForegroundColorAttributeName(字體顏色)

  該屬性所對應的值是一個 UIColor 對象。該屬性用於指定一段文本的字體顏色。如果不指定該屬性,則預設為黑色。

  4.NSString *const NSBackgroundColorAttributeName(字體背景色):

  屬性所對應的值是一個 UIColor 對象。該屬性用於指定一段文本的背景顏色。如果不指定該屬性,則預設無背景色。

  5.NSString *const NSLigatureAttributeName(連字元):

  該屬性所對應的值是一個 NSNumber 對象(整數)。連體字元是指某些連在一起的字元,它們採用單個的圖元符號。0 表示沒有連體字元。1 表示使用預設的連體字元。2表示使用所有連體符號。預設值為 1(註意,iOS 不支持值為 2)。

  6.NSString *const NSKernAttributeName(字間距):

  該屬性所對應的值是一個 NSNumber 對象(整數)。連體字元是指某些連在一起的字元,它們採用單個的圖元符號。0 表示沒有連體字元。1 表示使用預設的連體字元。2表示使用所有連體符號。預設值為 1(註意,iOS 不支持值為 2)。

  7.NSString *const NSStrikethroughStyleAttributeName(刪除線):

  該屬性所對應的值是一個 NSNumber 對象(整數)。該值指定是否在文字上加上刪除線,該值參考“Underline Style Attributes”。預設值是NSUnderlineStyleNone。

  8.NSString *const NSUnderlineStyleAttributeName(下劃線):

  該屬性所對應的值是一個 NSNumber 對象(整數)。該值指定是否在文字上加上下劃線,該值參考“Underline Style Attributes”。預設值是NSUnderlineStyleNone。

  9.NSString *const NSStrokeColorAttributeName(邊線顏色):

  該屬性所對應的值是一個 UIColor 對象。如果該屬性不指定(預設),則等同於 NSForegroundColorAttributeName。否則,指定為刪除線或下劃線顏色。更多細節見“Drawing attributedstrings that are both filled and stroked”。

  10.NSString *const NSStrokeWidthAttributeName(邊線寬度):

  該屬性所對應的值是一個 NSNumber 對象(小數)。該值改變描邊寬度(相對於字體size 的百分比)。預設為 0,即不改變。正數只改變描邊寬度。負數同時改變文字的描邊和填充寬度。例如,對於常見的空心字,這個值通常為3.0。

  11.NSString *const NSShadowAttributeName(陰影):

  該屬性所對應的值是一個 NSShadow 對象。預設為 nil。

  12.NSString *const NSVerticalGlyphFormAttributeName(橫豎排版):

  該屬性所對應的值是一個 NSNumber 對象(整數)。0 表示橫排文本。1 表示豎排文本。在 iOS 中,總是使用橫排文本,0 以外的值都未定義。

三、代碼示例

  在這裡給大家舉了幾個簡單的例子,有興趣的可以嘗試其餘屬性的效果。

// 示例Lable
    UILabel *exLabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 200, 40)];
    exLabel.textAlignment = NSTextAlignmentCenter;
    [self.view addSubview:exLabel];
    
    NSString *exString = @"查看人數:150人";
    
    // 富文本對象
    NSMutableAttributedString *exAttributedString = [[NSMutableAttributedString alloc] initWithString:exString];
    
    // 富文本樣式
    // 通過addAttribute方法設置樣式
    // 參數分別是字元屬性,值,改變範圍
    // 字體顏色
    [exAttributedString addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(5, 4)];
    // 字體大小
    [exAttributedString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:25] range:NSMakeRange(5, 4)];
    // 背景顏色
    [exAttributedString addAttribute:NSBackgroundColorAttributeName value:[UIColor grayColor] range:NSMakeRange(5, 4)];
    // 字間距
    [exAttributedString addAttribute:NSKernAttributeName value:[NSNumber numberWithInt:5] range:NSMakeRange(5, 4)];
    exLabel.attributedText = exAttributedString;

  效果圖:

  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 我是一隻即將大四的大三狗,這是我的第一篇博客,說來慚愧。今年1月份,學校放寒假的時候開始自學的IOS,放假的時候比較起勁,看了一堆Object-C的視頻,然後照著中英文對照的IOS基礎開發教程,做了兩個簡單的手機APP,一個是小游戲,一個是日程提醒的。 但是開學之後,又投入到學校的課程還有我的一些學 ...
  • step 1:定義一個監聽介面 step 2:android application文件中添加如下代碼 //初始化 //註冊監聽 //記憶體空間過低的時候,被系統調用 step 3:那些浪費記憶體的地方,比如圖片緩存,可以實現並註冊這個監聽 推薦:http://www.cnblogs.com/rouch ...
  • 一. 概要 在 iOS 設備中,照片和視頻是相當重要的一部分。最近剛好在製作一個自定義的 iOS 圖片選擇器,順便整理一下 iOS 中對照片框架的使用方法。在 iOS 8 出現之前,開發者只能使用 AssetsLibrary 框架來訪問設備的照片庫,這是一個有點跟不上 iOS 應用發展步伐以及代碼設 ...
  • 遞歸搜尋NSString中重覆的文本 效果 源碼 https://github.com/YouXianMing/iOS-Project-Examples 中的 StringRange 項目 ...
  • 在用戶使用app過程中,會產生各種各樣的事件 iOS中的事件可以分為3大類型:觸摸事件、加速計事件、遠程式控制制事件 在iOS中不是任何對象都能處理事件,只有繼承了UIResponder的對象才能接收並處理事件。我們稱之為“響應者對象” UIApplication、UIViewController、UI ...
  • 1、如何通過代碼設置Button title的字體大小 設置Button.titleLabel.font = [UIFont systemFontOfSize:<#(CGFloat)#>] ; 2、獲取當前時間 3、判斷字元串是否為空字元的方法 4、tableView優化 5、百度地圖自定義大頭針圖 ...
  • 添加按鈕 ...
  • 使用Genymotion調試出現錯誤INSTALL_FAILED_CPU_ABI_INCOMPATIBLE解決辦法 http://www.cnblogs.com/xiaobo-Linux/ 下載地址:http://files.cnblogs.com/files/xiaobo-Linux/genymo ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...