From 83b9d5c682b21d88133f24da0f94dd56bd79e687 Mon Sep 17 00:00:00 2001
From: 单军华
Date: Thu, 19 Jul 2018 13:38:55 +0800
Subject: [PATCH] change

---
 screendisplay/Pods/YYCategories/YYCategories/UIKit/UIBezierPath+YYAdd.m |   64 ++++++++++++++++++++++++++++++++
 1 files changed, 64 insertions(+), 0 deletions(-)

diff --git a/screendisplay/Pods/YYCategories/YYCategories/UIKit/UIBezierPath+YYAdd.m b/screendisplay/Pods/YYCategories/YYCategories/UIKit/UIBezierPath+YYAdd.m
new file mode 100755
index 0000000..7e82fdf
--- /dev/null
+++ b/screendisplay/Pods/YYCategories/YYCategories/UIKit/UIBezierPath+YYAdd.m
@@ -0,0 +1,64 @@
+//
+//  UIBezierPath+YYAdd.m
+//  YYCategories <https://github.com/ibireme/YYCategories>
+//
+//  Created by ibireme on 14/10/30.
+//  Copyright (c) 2015 ibireme.
+//
+//  This source code is licensed under the MIT-style license found in the
+//  LICENSE file in the root directory of this source tree.
+//
+
+#import "UIBezierPath+YYAdd.h"
+#import "UIFont+YYAdd.h"
+#import <CoreText/CoreText.h>
+#import "YYCategoriesMacro.h"
+
+YYSYNTH_DUMMY_CLASS(UIBezierPath_YYAdd)
+
+
+@implementation UIBezierPath (YYAdd)
+
++ (UIBezierPath *)bezierPathWithText:(NSString *)text font:(UIFont *)font {
+    CTFontRef ctFont = font.CTFontRef;
+    if (!ctFont) return nil;
+    NSDictionary *attrs = @{ (__bridge id)kCTFontAttributeName:(__bridge id)ctFont };
+    NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:text attributes:attrs];
+    CFRelease(ctFont);
+    
+    CTLineRef line = CTLineCreateWithAttributedString((__bridge CFTypeRef)attrString);
+    if (!line) return nil;
+    
+    CGMutablePathRef cgPath = CGPathCreateMutable();
+    CFArrayRef runs = CTLineGetGlyphRuns(line);
+    for (CFIndex iRun = 0, iRunMax = CFArrayGetCount(runs); iRun < iRunMax; iRun++) {
+        CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(runs, iRun);
+        CTFontRef runFont = CFDictionaryGetValue(CTRunGetAttributes(run), kCTFontAttributeName);
+        
+        for (CFIndex iGlyph = 0, iGlyphMax = CTRunGetGlyphCount(run); iGlyph < iGlyphMax; iGlyph++) {
+            CFRange glyphRange = CFRangeMake(iGlyph, 1);
+            CGGlyph glyph;
+            CGPoint position;
+            CTRunGetGlyphs(run, glyphRange, &glyph);
+            CTRunGetPositions(run, glyphRange, &position);
+            
+            CGPathRef glyphPath = CTFontCreatePathForGlyph(runFont, glyph, NULL);
+            if (glyphPath) {
+                CGAffineTransform transform = CGAffineTransformMakeTranslation(position.x, position.y);
+                CGPathAddPath(cgPath, &transform, glyphPath);
+                CGPathRelease(glyphPath);
+            }
+        }
+    }
+    UIBezierPath *path = [UIBezierPath bezierPathWithCGPath:cgPath];
+    CGRect boundingBox = CGPathGetPathBoundingBox(cgPath);
+    CFRelease(cgPath);
+    CFRelease(line);
+    
+    [path applyTransform:CGAffineTransformMakeScale(1.0, -1.0)];
+    [path applyTransform:CGAffineTransformMakeTranslation(0.0, boundingBox.size.height)];
+    
+    return path;
+}
+
+@end

--
Gitblit v1.8.0