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了物件,但是物件沒有立即被持久...