iOS:CoreText的常用文法

來源:互聯網
上載者:User

標籤:leading   移動   fine   pos   oid   常量   常用文法   nbsp   相對   

CoreText的關鍵文法

 

一、座標旋轉

-(void)drawRect:(CGRect)rect{    //擷取上下文    CGContextRef ctx = UIGraphicsGetCurrentContext();     //在上下文中,建立一個標準座標系    CGContextSetTextMatrix(ctx, CGAffineTransformIdentity);     //將上下文中的原點,進行平行移動,下面是沿著y軸方向移動,從而轉換成螢幕座標系    CGContextTranslateCTM(ctx, 0, self.bounds.size.height);     //翻轉y軸正方    CGContextScaleCTM(ctx, 1.0, -1.0);        //繪製尺寸(stringModel是字串模型,通過它提前算好了繪製尺寸),直接進行繪製    CTFrameRef ctFrame = self.stringModel.ctFrame;    CTFrameDraw(ctFrame, ctx);}

 

二、主要鍵名

//1、設定字型屬性,預設值:字型:Helvetica(Neue) 字型大小:12NSFontAttributeName             //2、設定字型顏色,取值為 UIColor對象,預設值為黑色          NSForegroundColorAttributeName       //3、設定字型所在地區背景顏色,取值為 UIColor對象,預設值為nil, 透明色NSBackgroundColorAttributeName      //4、設定連體屬性,取值為NSNumber 對象(整數),0 表示沒有連體字元,1 表示使用預設的連體字元NSLigatureAttributeName                //5、設定字元間距,取值為 NSNumber 對象(整數),正值間距加寬,負值間距變窄NSKernAttributeName                      //6、設定刪除線,取值為 NSNumber 對象(整數)NSStrikethroughStyleAttributeName   //7、設定刪除線顏色,取值為 UIColor 對象,預設值為黑色NSStrikethroughColorAttributeName   //8、設定底線,取值為 NSNumber 對象(整數),枚舉常量 NSUnderlineStyle中的值,與刪除線類似NSUnderlineStyleAttributeName         //9、設定底線顏色,取值為 UIColor 對象,預設值為黑色NSUnderlineColorAttributeName         //10、設定筆畫寬度,取值為 NSNumber 對象(整數),負值填充效果,正值中空效果NSStrokeWidthAttributeName            //11、填充部分顏色,不是字型顏色,取值為 UIColor 對象NSStrokeColorAttributeName            //12、設定陰影屬性,取值為 NSShadow 對象NSShadowAttributeName                 //13、設定文本特殊效果,取值為 NSString 對象,目前只有圖版印刷效果可用NSTextEffectAttributeName              //14、設定基準位移值,取值為 NSNumber (float),正值上偏,負值下偏NSBaselineOffsetAttributeName         //15、設定字形傾斜度,取值為 NSNumber (float),正值右傾,負值左傾NSObliquenessAttributeName             //16、設定文本橫向展開屬性,取值為 NSNumber (float),正值橫向展開文本,負值橫向壓縮文本NSExpansionAttributeName               //17、設定文字書寫方向,從左向右書寫或者從右向左書寫NSWritingDirectionAttributeName       //18、設定文字排版方向,取值為 NSNumber 對象(整數),0 表示橫排文本,1 表示豎排文本NSVerticalGlyphFormAttributeName    //19、設定連結屬性,點擊後呼叫瀏覽器開啟指定URL地址NSLinkAttributeName                       //20、設定文本附件,取值為NSTextAttachment對象,常用於文字圖片混排NSAttachmentAttributeName             //21、設定文本段落排版格式,取值為 NSParagraphStyle 對象NSParagraphStyleAttributeName      

 

三、主要函數

//1、傳入CTFrame,返回一個裝有多個CTLine對象的數組。CFArrayRef CTFrameGetLines( CTFrameRef frame ) CT_AVAILABLE(10_5, 3_2);//2、擷取數組中的元素個數CFIndex CFArrayGetCount(CFArrayRef theArray); //3、擷取數組中第idx個元素const void *CFArrayGetValueAtIndex(CFArrayRef theArray, CFIndex idx);//4、 擷取所有CTLineRef的基礎原點,傳入CTFrame,CFRange,和一個CGPoint的結構體數組指標,該函數會把每一個CTLine的origin座標寫到數組裡。void CTFrameGetLineOrigins(CTFrameRef frame, CFRange range, CGPoint origins[] ) CT_AVAILABLE(10_5, 3_2);//5、擷取CTLine中文字在整段文字中的RangeCFRange CTLineGetStringRange( CTLineRef line ) CT_AVAILABLE(10_5, 3_2);//6、擷取CTLine中的CTRun的數組CFArrayRef CTLineGetGlyphRuns( CTLineRef line ) CT_AVAILABLE(10_5, 3_2); //7、擷取CTRun在整段文字中的RangeCFRange CTRunGetStringRange( CTRunRef run ) CT_AVAILABLE(10_5, 3_2); //8、 擷取點擊處position文字在整段文字中的indexCFIndex CTLineGetStringIndexForPosition(CTLineRef line, CGPoint position ) CT_AVAILABLE(10_5, 3_2); //9、擷取整段文字中charIndex位置的字元相對line的原點的x值CGFloat CTLineGetOffsetForStringIndex(CTLineRef line,CFIndex charIndex,CGFloat * __nullable secondaryOffset ) CT_AVAILABLE(10_5, 3_2);//10、擷取數組中字形個個數CFIndex CTLineGetGlyphCount( CTLineRef line ) CT_AVAILABLE(10_5, 3_2); //11、設定CoreText繪製前的座標。設定基準位置CG_EXTERN void CGContextSetTextPosition(CGContextRef __nullable c,    CGFloat x, CGFloat y)    CG_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_2_0); //12、繪製CTLine。void CTLineDraw( CTLineRef line, CGContextRef context ) CT_AVAILABLE(10_5, 3_2); //13、擷取CTLine的上行高度,下行高度,行距double CTLineGetTypographicBounds(    CTLineRef line,    CGFloat * __nullable ascent,    CGFloat * __nullable descent,    CGFloat * __nullable leading ) CT_AVAILABLE(10_5, 3_2); //14、設定當前文本矩陣CG_EXTERN void CGContextSetTextMatrix(    CGContextRef __nullable c,    CGAffineTransform t)    CG_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_2_0); //15、擷取一行文字的範圍, 就是指把這一行文字點有的像素矩陣作為一個image圖片,來得到整個矩形地區。相對於每一行基準原點的位移量和寬高(例如:{{1.2, -2.57227}, {208.025, 19.2523}},就是相對於本身的基準原點向右位移1.2個單位,向下位移2.57227個單位,後面是寬高)CGRect CTLineGetImageBounds(    CTLineRef line,    CGContextRef __nullable context ) CT_AVAILABLE(10_5, 3_2);

 

 

iOS:CoreText的常用文法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.