iOS7 TextKit 框架的簡單實用

2021-07-10 17:59:27 字數 1927 閱讀 2569

text kit架構

下面,我們通過圖1(此圖來自wwdc2013 session 210)來了解一下text kit的架構。圖1是基於ios 7繪製的,從圖中,我們可以看到text kit是基於core text構建的,它通過core text與core graphics進行互動。而ui控制項(uilabel、uitextfield和uitextview)則構建於text kit之上,可見這些文字控制項可以利用text kit提供的api來對文字進行排版和渲染處理。 從圖中我們也可以看到sdk提供的uiwebview是基於webkit的,它不能使用text kit提供的功能。

text kit特點

從上面的介紹中,我們可以了解到text kit在uikit中的作用非常重要。text kit在實際開發中具有如下特點:

1.在ui控制項中text kit完全掌控著文字的排版和渲染

2.uitextview、uitextfield和uilabel是構建於text kit之上的

3.能夠與動畫、uicollectionview和uitableview做到無縫整合

4.text kit具有這樣一些能力:subclassing、delegation和notifcation。

text kit功能概述

下面我們看看通過text kit,都能實現那些功能(這裡列出了是一些常用和重要功能):

1.對文字進行分頁或多列排版

2.支援文字的換行、摺疊和著色等處理

3.可以調整字與字之間的距離、行間距、文字大小、指定特定的字型

4.支援富文字編輯,可以自定義文字截斷

5.支援凸版印刷效果(letterpress)

6.支援資料型別的檢測(例如鏈結、附件等)

text kit示例

#import "viewcontroller.h"

@inte***ce viewcontroller ()

@property (nonatomic, strong) uitextview *textview;

@property (nonatomic, strong) uiimageview *imageview;

@property (nonatomic, assign) cgpoint gesturestartingpoint;

@property (nonatomic, assign) cgpoint gesturestartingcenter;

@end

@implementation viewcontroller

- (void)viewdidload

- (uibezierpath *)translatedbezierpath

/** * 平移操作

* * @param sender

*/- (void)imagepanned:(id)sender

else if (localsender.state == uigesturerecognizerstatechanged) else if (localsender.state == uigesturerecognizerstateended)

}}- (uitextview *)textview

return _textview;

}- (uiimageview *)imageview

return _imageview;

}- (void)didreceivememorywarning

@end

效果:

ios的系統框架

ios的系統架構分為四個層次 核心作業系統層 core os layer 核心服務層 core services layer 層 media layer 和可觸控層 cocoa touch layer 下面是ios系統結構圖。二 core services是核心服務層,可以通過它來訪問ios的一些服...

iOS的系統框架

了解一下。ios是於unix核心,android基於linux核心。ios的系統架構分為四個層次 核心作業系統層 core os layer 核心服務層 core services layer 層 media layer 和可觸控層 cocoa touch layer 下面是ios系統結構圖。ios...

Hibernate及Spring的框架簡述

最近在複習一些框架的概念,總結了一下,談一談我的理解。hibernate是乙個開放源 的物件關係對映框架,它對jdbc進行了非常輕量級的物件封裝,大大簡化了資料訪問層繁瑣的重複性 1.hibernate中的三種狀態 臨時狀態 transient object 只是new了物件,但是物件沒有立即被持久...