iOS 手記 - 計算文字高度/寬度:- (CGSize)sizeWithAttributes:(NSDictionary<NSString *,id> *)attrs

来源:http://www.cnblogs.com/winsoncheung/archive/2017/07/28/7248486.html
-Advertisement-
Play Games

計算NSString 的 size: - (CGSize)sizeWithAttributes:(NSDictionary<NSString *,id> *)attrs; Parameters: 類型:NSDictionary 文字的屬性字典,例如 NSFontAttributeName 也可以使用 ...


  

計算NSString 的 size:

- (CGSize)sizeWithAttributes:(NSDictionary<NSString *,id> *)attrs;

Parameters:

  類型:NSDictionary

  文字的屬性字典,例如 NSFontAttributeName

  也可以使用 NSAttributedString 的屬性字典,因為是 NSString 對象,所以設置的是整個 string 的屬性,而非 string的某一段 rangs。

Return Value:  

  類型:CGSize

  返回設置了屬性的文字占用的邊界框大小,即這段文字的寬度與高度。 

 

註意:

  返回的是帶小數的 size, 當使用這個 size 去設置 view 的 frame 時, 需要使用ceil() 函數來取 size 的 某個成員(width/height)的整數值。

 

例:

CGSize titleSize = [tagModel.title sizeWithAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:8]}];

titleLabel.frame = CGRectMake(0, 0, ceil(titleSize.width), ceil(titleSize.height));

 

 


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

-Advertisement-
Play Games
更多相關文章
  • 我以前一直以為只能用jquery的data()來獲取 哈哈 是我太弱了 直接用dataset就可以獲取到DOM元素的data屬性 好吧,還可以 用js的獲取屬性的方法getAttribute() ...
  • 1、父級div定義偽類:after和zoom 原理:IE8以上和非IE瀏覽器才支持:after,原理和方法2有點類似,zoom(IE轉有屬性)可解決ie6,ie7浮動問題 優點:瀏覽器支持好,不容易出現怪問題(目前:大型網站都有使用,如:騰迅,網易,新浪等等) 缺點:代碼多,不少初學者不理解原理,要 ...
  • 前言:一直想著整理一下關於前端的知識體系和資料,工作忙了些,擠擠總會有的,資料很多,就看你能不能耐下心堅持去學了,要多學多敲多想,祝你進步~學習之前首先要大概瞭解什麼是HTML ,CSS , JS:一句話概括:HTML 是骨骼, CSS是皮膚, JS只是夾在中間的神經組織!細說的話:HTML是由多種 ...
  • 首先我來介紹一下我遇到的問題 1.當有一個table表包含了<tr>標簽,<td>標簽,大致可以認為是這樣的: <tr> <td> @scene.ID </td> <td> @scene.SceneName </td> <td> @scene.QRUrl </td> <td> @scene.Loca ...
  • 拋物線運動就是:當拖拽結束的時候,我們讓當前的元素同時水平運動+垂直運動 在同樣的移動距離下,我們滑鼠移動的速度快,move方法觸發的次數少,相反移動的速度慢,move方法觸發的次數就多->瀏覽器對於每一次的move行為的觸發都是由一個最小時間的 通過觀察,我們發現一個事情:水平方向我們盒子在結束拖 ...
  • javascript中有5中數據類型(也稱為基本數據類型):Undefined、Null、Boolean、Number和String,還有一種複雜數據類型——object,object本質是由一組鍵值對組成的。 typeof操作符:用於檢測給定變數的數據類型,對一個值試用typeof操作符可能返回下 ...
  • 1.router.push(location) window.history.pushState 想要導航到不同的 URL,則使用 router.push 方法。這個方法會向 history 棧添加一個新的記錄,所以,當用戶點擊瀏覽器後退按鈕時,則回到之前的 URL。 2.router.replac ...
  • 其實我想做的是載入進度條效果,但是假的進度條太爛,真的又沒有特別好的辦法,判斷圖片這種總感覺比較漏。 這是代碼,有完美解決方案瞭解決。 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...