瀏覽代碼

improved compatibility

ibireme 9 年之前
父節點
當前提交
167cc5706c

+ 6 - 6
YYText/Component/YYTextEffectWindow.m

@@ -102,7 +102,7 @@
 }
 
 - (CGPoint)_correctedCenter:(CGPoint)center forMagnifier:(YYTextMagnifier *)mag rotation:(CGFloat)rotation {
-    CGFloat degree = YYRadiansToDegrees(rotation);
+    CGFloat degree = YYTextRadiansToDegrees(rotation);
     
     degree /= 45.0;
     if (degree < 0) degree += (int)(-degree/8.0 + 1) * 8;
@@ -205,8 +205,8 @@
     captureRect.origin.x = captureCenter.x - captureRect.size.width / 2;
     captureRect.origin.y = captureCenter.y - captureRect.size.height / 2;
     
-    CGAffineTransform trans = YYCGAffineTransformGetFromViews(hostView, self);
-    CGFloat rotation = YYCGAffineTransformGetRotation(trans);
+    CGAffineTransform trans = YYTextCGAffineTransformGetFromViews(hostView, self);
+    CGFloat rotation = YYTextCGAffineTransformGetRotation(trans);
     
     if (mag.captureDisabled) {
         if (!mag.snapshot || mag.snapshot.size.width > 1) {
@@ -252,7 +252,7 @@
         if (window.screen != mainScreen) continue;
         if ([window isKindOfClass:self.class]) break; //don't capture window above self
         CGContextSaveGState(context);
-        CGContextConcatCTM(context, YYCGAffineTransformGetFromViews(window, self));
+        CGContextConcatCTM(context, YYTextCGAffineTransformGetFromViews(window, self));
         [window.layer renderInContext:context]; //render
         //[window drawViewHierarchyInRect:window.bounds afterScreenUpdates:NO]; //slower when capture whole window
         CGContextRestoreGState(context);
@@ -365,8 +365,8 @@
         if (!dotInKeyboard) {
             CGRect hostRect = [selection.hostView convertRect:selection.hostView.bounds toView:self];
             CGRect intersection = CGRectIntersection(dotRect, hostRect);
-            if (YYCGRectGetArea(intersection) < YYCGRectGetArea(dotRect)) {
-                CGFloat dist = YYCGPointGetDistanceToRect(YYCGRectGetCenter(dotRect), hostRect);
+            if (YYTextCGRectGetArea(intersection) < YYTextCGRectGetArea(dotRect)) {
+                CGFloat dist = YYTextCGPointGetDistanceToRect(YYTextCGRectGetCenter(dotRect), hostRect);
                 if (dist < CGRectGetWidth(dot.frame) * 0.55) {
                     dot.mirror.hidden = NO;
                 }

+ 1 - 1
YYText/Component/YYTextInput.m

@@ -98,7 +98,7 @@
 + (instancetype)rangeWithStart:(YYTextPosition *)start end:(YYTextPosition *)end {
     if (!start || !end) return nil;
     if ([start compare:end] == NSOrderedDescending) {
-        YY_SWAP(start, end);
+        YYTEXT_SWAP(start, end);
     }
     YYTextRange *range = [YYTextRange new];
     range->_start = start;

+ 46 - 46
YYText/Component/YYTextLayout.m

@@ -448,7 +448,7 @@ OSSpinLockUnlock(&_lock);
     // create CoreText objects
     ctSetter = CTFramesetterCreateWithAttributedString((CFTypeRef)text);
     if (!ctSetter) goto fail;
-    ctFrame = CTFramesetterCreateFrame(ctSetter, YYCFRangeFromNSRange(range), cgPath, (CFTypeRef)frameAttrs);
+    ctFrame = CTFramesetterCreateFrame(ctSetter, YYTextCFRangeFromNSRange(range), cgPath, (CFTypeRef)frameAttrs);
     if (!ctFrame) goto fail;
     lines = [NSMutableArray new];
     ctLines = CTFrameGetLines(ctFrame);
@@ -602,7 +602,7 @@ OSSpinLockUnlock(&_lock);
                 rect = CGRectInset(rect, -inset, -inset);
             }
         } else {
-            rect = UIEdgeInsetsInsetRect(rect,YYUIEdgeInsetsInvert(container.insets));
+            rect = UIEdgeInsetsInsetRect(rect,YYTextUIEdgeInsetsInvert(container.insets));
         }
         rect = CGRectStandardize(rect);
         CGSize size = rect.size;
@@ -619,7 +619,7 @@ OSSpinLockUnlock(&_lock);
         textBoundingSize = size;
     }
     
-    visibleRange = YYNSRangeFromCFRange(CTFrameGetVisibleStringRange(ctFrame));
+    visibleRange = YYTextNSRangeFromCFRange(CTFrameGetVisibleStringRange(ctFrame));
     if (needTruncation) {
         YYTextLine *lastLine = lines.lastObject;
         NSRange lastRange = lastLine.range;
@@ -707,7 +707,7 @@ OSSpinLockUnlock(&_lock);
                 runStrIdx[glyphCount] = runStrRange.location + runStrRange.length;
                 CFDictionaryRef runAttrs = CTRunGetAttributes(run);
                 CTFontRef font = CFDictionaryGetValue(runAttrs, kCTFontAttributeName);
-                BOOL isColorGlyph = YYCTFontContainsColorBitmapGlyphs(font);
+                BOOL isColorGlyph = YYTextCTFontContainsColorBitmapGlyphs(font);
                 
                 NSUInteger prevIdx = 0;
                 YYTextRunGlyphDrawMode prevMode = YYTextRunGlyphDrawModeHorizontal;
@@ -1020,7 +1020,7 @@ fail:
         if (position <= range.location || position >= range.location + range.length) continue;
         CFDictionaryRef attrs = CTRunGetAttributes(run);
         CTFontRef font = CFDictionaryGetValue(attrs, kCTFontAttributeName);
-        if (!YYCTFontContainsColorBitmapGlyphs(font)) continue;
+        if (!YYTextCTFontContainsColorBitmapGlyphs(font)) continue;
         
         // Here's Emoji runs (larger than 1 unichar), and position is inside the range.
         CFIndex indices[glyphCount];
@@ -1204,7 +1204,7 @@ fail:
             if (glyphCount == 0) break;
             CFDictionaryRef attrs = CTRunGetAttributes(run);
             CTFontRef font = CFDictionaryGetValue(attrs, kCTFontAttributeName);
-            if (!YYCTFontContainsColorBitmapGlyphs(font)) break;
+            if (!YYTextCTFontContainsColorBitmapGlyphs(font)) break;
             
             CFIndex indices[glyphCount];
             CGPoint positions[glyphCount];
@@ -1816,13 +1816,13 @@ fail:
                 bottom = startLine.bottom;
             }
             if (top == CGFLOAT_MAX || bottom == CGFLOAT_MAX) return CGRectNull;
-            if (top > bottom) YY_SWAP(top, bottom);
+            if (top > bottom) YYTEXT_SWAP(top, bottom);
             return CGRectMake(startLine.left, top, startLine.width, bottom - top);
         } else {
             CGFloat top = [self offsetForTextPosition:range.start.offset lineIndex:startLineIndex];
             CGFloat bottom = startLine.bottom;
             if (top == CGFLOAT_MAX || bottom == CGFLOAT_MAX) return CGRectNull;
-            if (top > bottom) YY_SWAP(top, bottom);
+            if (top > bottom) YYTEXT_SWAP(top, bottom);
             CGRect rect = CGRectMake(startLine.left, top, startLine.width, bottom - top);
             for (NSUInteger i = 1; i < lines.count; i++) {
                 YYTextLine *line = lines[i];
@@ -1840,13 +1840,13 @@ fail:
                 right = startLine.right;
             }
             if (left == CGFLOAT_MAX || right == CGFLOAT_MAX) return CGRectNull;
-            if (left > right) YY_SWAP(left, right);
+            if (left > right) YYTEXT_SWAP(left, right);
             return CGRectMake(left, startLine.top, right - left, startLine.height);
         } else {
             CGFloat left = [self offsetForTextPosition:range.start.offset lineIndex:startLineIndex];
             CGFloat right = startLine.right;
             if (left == CGFLOAT_MAX || right == CGFLOAT_MAX) return CGRectNull;
-            if (left > right) YY_SWAP(left, right);
+            if (left > right) YYTEXT_SWAP(left, right);
             CGRect rect = CGRectMake(left, startLine.top, right - left, startLine.height);
             for (NSUInteger i = 1; i < lines.count; i++) {
                 YYTextLine *line = lines[i];
@@ -1876,7 +1876,7 @@ fail:
     NSUInteger startLineIndex = [self lineIndexForPosition:range.start];
     NSUInteger endLineIndex = [self lineIndexForPosition:range.end];
     if (startLineIndex == NSNotFound || endLineIndex == NSNotFound) return rects;
-    if (startLineIndex > endLineIndex) YY_SWAP(startLineIndex, endLineIndex);
+    if (startLineIndex > endLineIndex) YYTEXT_SWAP(startLineIndex, endLineIndex);
     YYTextLine *startLine = _lines[startLineIndex];
     YYTextLine *endLine = _lines[endLineIndex];
     CGFloat offsetStart = [self offsetForTextPosition:range.start.offset lineIndex:startLineIndex];
@@ -1903,7 +1903,7 @@ fail:
     [rects addObject:end];
     
     if (startLine.row == endLine.row) { // same row
-        if (offsetStart > offsetEnd) YY_SWAP(offsetStart, offsetEnd);
+        if (offsetStart > offsetEnd) YYTEXT_SWAP(offsetStart, offsetEnd);
         YYTextSelectionRect *rect = [YYTextSelectionRect new];
         if (isVertical) {
             rect.rect = CGRectMake(startLine.bounds.origin.x, offsetStart, MAX(startLine.width, endLine.width), offsetEnd - offsetStart);
@@ -2180,13 +2180,13 @@ static void YYTextDrawRun(YYTextLine *line, CTRunRef run, CGContextRef context,
                                 }
                                 CGContextSetTextPosition(context, x, y);
                             } else {
-                                CGContextRotateCTM(context, YYDegreesToRadians(-90));
+                                CGContextRotateCTM(context, YYTextDegreesToRadians(-90));
                                 CGContextSetTextPosition(context,
                                                          line.position.y - size.height + glyphPositions[g].x,
                                                          line.position.x + verticalOffset + glyphPositions[g].y);
                             }
                             
-                            if (YYCTFontContainsColorBitmapGlyphs(runFont)) {
+                            if (YYTextCTFontContainsColorBitmapGlyphs(runFont)) {
                                 CTFontDrawGlyphs(runFont, glyphs + g, &zeroPoint, 1, context);
                             } else {
                                 CGFontRef cgFont = CTFontCopyGraphicsFont(runFont, NULL);
@@ -2217,7 +2217,7 @@ static void YYTextDrawRun(YYTextLine *line, CTRunRef run, CGContextRef context,
                                                      line.position.x + glyphPositions[g].x,
                                                      size.height - (line.position.y + glyphPositions[g].y));
                             
-                            if (YYCTFontContainsColorBitmapGlyphs(runFont)) {
+                            if (YYTextCTFontContainsColorBitmapGlyphs(runFont)) {
                                 CTFontDrawGlyphs(runFont, glyphs + g, &zeroPoint, 1, context);
                             } else {
                                 CGFontRef cgFont = CTFontCopyGraphicsFont(runFont, NULL);
@@ -2229,7 +2229,7 @@ static void YYTextDrawRun(YYTextLine *line, CTRunRef run, CGContextRef context,
                         } CGContextRestoreGState(context);
                     }
                 } else {
-                    if (YYCTFontContainsColorBitmapGlyphs(runFont)) {
+                    if (YYTextCTFontContainsColorBitmapGlyphs(runFont)) {
                         CTFontDrawGlyphs(runFont, glyphs, glyphPositions, glyphCount, context);
                     } else {
                         CGFontRef cgFont = CTFontCopyGraphicsFont(runFont, NULL);
@@ -2291,7 +2291,7 @@ static void YYTextDrawBorderRects(CGContextRef context, CGSize size, YYTextBorde
         } else {
             rect = UIEdgeInsetsInsetRect(rect, border.insets);
         }
-        rect = YYCGRectPixelRound(rect);
+        rect = YYTextCGRectPixelRound(rect);
         UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:border.cornerRadius];
         [path closePath];
         [paths addObject:path];
@@ -2391,17 +2391,17 @@ static void YYTextDrawLineStyle(CGContextRef context, CGFloat length, CGFloat li
     CGContextSaveGState(context); {
         if (isVertical) {
             CGFloat x, y1, y2, w;
-            y1 = YYCGFloatPixelRound(position.y);
-            y2 = YYCGFloatPixelRound(position.y + length);
+            y1 = YYTextCGFloatPixelRound(position.y);
+            y2 = YYTextCGFloatPixelRound(position.y + length);
             w = (styleBase == YYTextLineStyleThick ? lineWidth * 2 : lineWidth);
             
-            CGFloat linePixel = YYCGFloatToPixel(w);
+            CGFloat linePixel = YYTextCGFloatToPixel(w);
             if (fabs(linePixel - floor(linePixel)) < 0.1) {
                 int iPixel = linePixel;
                 if (iPixel == 0 || (iPixel % 2)) { // odd line pixel
-                    x = YYCGFloatPixelHalf(position.x);
+                    x = YYTextCGFloatPixelHalf(position.x);
                 } else {
-                    x = YYCGFloatPixelFloor(position.x);
+                    x = YYTextCGFloatPixelFloor(position.x);
                 }
             } else {
                 x = position.x;
@@ -2428,17 +2428,17 @@ static void YYTextDrawLineStyle(CGContextRef context, CGFloat length, CGFloat li
             }
         } else {
             CGFloat x1, x2, y, w;
-            x1 = YYCGFloatPixelRound(position.x);
-            x2 = YYCGFloatPixelRound(position.x + length);
+            x1 = YYTextCGFloatPixelRound(position.x);
+            x2 = YYTextCGFloatPixelRound(position.x + length);
             w = (styleBase == YYTextLineStyleThick ? lineWidth * 2 : lineWidth);
             
-            CGFloat linePixel = YYCGFloatToPixel(w);
+            CGFloat linePixel = YYTextCGFloatToPixel(w);
             if (fabs(linePixel - floor(linePixel)) < 0.1) {
                 int iPixel = linePixel;
                 if (iPixel == 0 || (iPixel % 2)) { // odd line pixel
-                    y = YYCGFloatPixelHalf(position.y);
+                    y = YYTextCGFloatPixelHalf(position.y);
                 } else {
-                    y = YYCGFloatPixelFloor(position.y);
+                    y = YYTextCGFloatPixelFloor(position.y);
                 }
             } else {
                 y = position.y;
@@ -2638,7 +2638,7 @@ static void YYTextDrawBorder(YYTextLayout *layout, CGContextRef context, CGSize
                     CGFloat iRunWidth = CTRunGetTypographicBounds(iRun, CFRangeMake(0, 0), &ascent, &descent, NULL);
                     
                     if (isVertical) {
-                        YY_SWAP(iRunPosition.x, iRunPosition.y);
+                        YYTEXT_SWAP(iRunPosition.x, iRunPosition.y);
                         iRunPosition.y += iLine.position.y;
                         CGRect iRect = CGRectMake(verticalOffset + line.position.x - descent, iRunPosition.y, ascent + descent, iRunWidth);
                         if (CGRectIsNull(extLineRect)) {
@@ -2858,8 +2858,8 @@ static void YYTextDrawAttachment(YYTextLayout *layout, CGContextRef context, CGS
         } else {
             rect = UIEdgeInsetsInsetRect(rect, a.contentInsets);
         }
-        rect = YYCGRectFitWithContentMode(rect, asize, a.contentMode);
-        rect = YYCGRectPixelRound(rect);
+        rect = YYTextCGRectFitWithContentMode(rect, asize, a.contentMode);
+        rect = YYTextCGRectPixelRound(rect);
         rect = CGRectStandardize(rect);
         rect.origin.x += point.x + verticalOffset;
         rect.origin.y += point.y;
@@ -3019,8 +3019,8 @@ static void YYTextDrawDebug(YYTextLayout *layout, CGContextRef context, CGSize s
         if (!path) {
             CGRect rect = (CGRect){CGPointZero, layout.container.size};
             rect = UIEdgeInsetsInsetRect(rect, layout.container.insets);
-            if (op.CTFrameBorderColor) rect = YYCGRectPixelHalf(rect);
-            else rect = YYCGRectPixelRound(rect);
+            if (op.CTFrameBorderColor) rect = YYTextCGRectPixelHalf(rect);
+            else rect = YYTextCGRectPixelRound(rect);
             path = [UIBezierPath bezierPathWithRect:rect];
         }
         [path closePath];
@@ -3077,27 +3077,27 @@ static void YYTextDrawDebug(YYTextLayout *layout, CGContextRef context, CGSize s
         CGRect lineBounds = line.bounds;
         if (op.CTLineFillColor) {
             [op.CTLineFillColor setFill];
-            CGContextAddRect(context, YYCGRectPixelRound(lineBounds));
+            CGContextAddRect(context, YYTextCGRectPixelRound(lineBounds));
             CGContextFillPath(context);
         }
         if (op.CTLineBorderColor) {
             [op.CTLineBorderColor setStroke];
-            CGContextAddRect(context, YYCGRectPixelHalf(lineBounds));
+            CGContextAddRect(context, YYTextCGRectPixelHalf(lineBounds));
             CGContextStrokePath(context);
         }
         if (op.baselineColor) {
             [op.baselineColor setStroke];
             if (isVertical) {
-                CGFloat x = YYCGFloatPixelHalf(line.position.x);
-                CGFloat y1 = YYCGFloatPixelHalf(line.top);
-                CGFloat y2 = YYCGFloatPixelHalf(line.bottom);
+                CGFloat x = YYTextCGFloatPixelHalf(line.position.x);
+                CGFloat y1 = YYTextCGFloatPixelHalf(line.top);
+                CGFloat y2 = YYTextCGFloatPixelHalf(line.bottom);
                 CGContextMoveToPoint(context, x, y1);
                 CGContextAddLineToPoint(context, x, y2);
                 CGContextStrokePath(context);
             } else {
-                CGFloat x1 = YYCGFloatPixelHalf(lineBounds.origin.x);
-                CGFloat x2 = YYCGFloatPixelHalf(lineBounds.origin.x + lineBounds.size.width);
-                CGFloat y = YYCGFloatPixelHalf(line.position.y);
+                CGFloat x1 = YYTextCGFloatPixelHalf(lineBounds.origin.x);
+                CGFloat x2 = YYTextCGFloatPixelHalf(lineBounds.origin.x + lineBounds.size.width);
+                CGFloat y = YYTextCGFloatPixelHalf(line.position.y);
                 CGContextMoveToPoint(context, x1, y);
                 CGContextAddLineToPoint(context, x2, y);
                 CGContextStrokePath(context);
@@ -3125,7 +3125,7 @@ static void YYTextDrawDebug(YYTextLayout *layout, CGContextRef context, CGSize s
                 
                 CGPoint runPosition = glyphPositions[0];
                 if (isVertical) {
-                    YY_SWAP(runPosition.x, runPosition.y);
+                    YYTEXT_SWAP(runPosition.x, runPosition.y);
                     runPosition.x = line.position.x;
                     runPosition.y += line.position.y;
                 } else {
@@ -3144,12 +3144,12 @@ static void YYTextDrawDebug(YYTextLayout *layout, CGContextRef context, CGSize s
                 
                 if (op.CTRunFillColor) {
                     [op.CTRunFillColor setFill];
-                    CGContextAddRect(context, YYCGRectPixelRound(runTypoBounds));
+                    CGContextAddRect(context, YYTextCGRectPixelRound(runTypoBounds));
                     CGContextFillPath(context);
                 }
                 if (op.CTRunBorderColor) {
                     [op.CTRunBorderColor setStroke];
-                    CGContextAddRect(context, YYCGRectPixelHalf(runTypoBounds));
+                    CGContextAddRect(context, YYTextCGRectPixelHalf(runTypoBounds));
                     CGContextStrokePath(context);
                 }
                 if (op.CTRunNumberColor) {
@@ -3165,7 +3165,7 @@ static void YYTextDrawDebug(YYTextLayout *layout, CGContextRef context, CGSize s
                         CGSize adv = glyphAdvances[g];
                         CGRect rect;
                         if (isVertical) {
-                            YY_SWAP(pos.x, pos.y);
+                            YYTEXT_SWAP(pos.x, pos.y);
                             pos.x = runPosition.x;
                             pos.y += line.position.y;
                             rect = CGRectMake(pos.x - descent, pos.y, runTypoBounds.size.width, adv.width);
@@ -3176,12 +3176,12 @@ static void YYTextDrawDebug(YYTextLayout *layout, CGContextRef context, CGSize s
                         }
                         if (op.CGGlyphFillColor) {
                             [op.CGGlyphFillColor setFill];
-                            CGContextAddRect(context, YYCGRectPixelRound(rect));
+                            CGContextAddRect(context, YYTextCGRectPixelRound(rect));
                             CGContextFillPath(context);
                         }
                         if (op.CGGlyphBorderColor) {
                             [op.CGGlyphBorderColor setStroke];
-                            CGContextAddRect(context, YYCGRectPixelHalf(rect));
+                            CGContextAddRect(context, YYTextCGRectPixelHalf(rect));
                             CGContextStrokePath(context);
                         }
                     }

+ 2 - 2
YYText/Component/YYTextLine.m

@@ -97,7 +97,7 @@
             runWidth = CTRunGetTypographicBounds(run, CFRangeMake(0, 0), &ascent, &descent, &leading);
             
             if (_vertical) {
-                YY_SWAP(runPosition.x, runPosition.y);
+                YYTEXT_SWAP(runPosition.x, runPosition.y);
                 runPosition.y = _position.y + runPosition.y;
                 runTypoBounds = CGRectMake(_position.x + runPosition.x - descent, runPosition.y , ascent + descent, runWidth);
             } else {
@@ -106,7 +106,7 @@
                 runTypoBounds = CGRectMake(runPosition.x, runPosition.y - ascent, runWidth, ascent + descent);
             }
             
-            NSRange runRange = YYNSRangeFromCFRange(CTRunGetStringRange(run));
+            NSRange runRange = YYTextNSRangeFromCFRange(CTRunGetStringRange(run));
             [attachments addObject:attachment];
             [attachmentRanges addObject:[NSValue valueWithRange:runRange]];
             [attachmentRects addObject:[NSValue valueWithCGRect:runTypoBounds]];

+ 6 - 6
YYText/Component/YYTextMagnifier.m

@@ -94,7 +94,7 @@
         
         CGPathRef boxPath = CGPathCreateWithRect(CGRectMake(0, 0, size.width, size.height), NULL);
         CGPathRef fillPath = CGPathCreateWithEllipseInRect(rect, NULL);
-        CGPathRef strokePath = CGPathCreateWithEllipseInRect(YYCGRectPixelHalf(rect), NULL);
+        CGPathRef strokePath = CGPathCreateWithEllipseInRect(YYTextCGRectPixelHalf(rect), NULL);
         
         // inner shadow
         CGContextSaveGState(context); {
@@ -133,7 +133,7 @@
         CGContextSaveGState(context); {
             CGContextAddPath(context, strokePath);
             [[UIColor colorWithWhite:0.6 alpha:1] setStroke];
-            CGContextSetLineWidth(context, YYCGFloatFromPixel(1));
+            CGContextSetLineWidth(context, YYTextCGFloatFromPixel(1));
             CGContextStrokePath(context);
         } CGContextRestoreGState(context);
         
@@ -168,7 +168,7 @@
 @implementation _YYTextMagnifierRanged
 #define kMultiple 1.2
 #define kSize CGSizeMake(141, 60)
-#define kPadding YYCGFloatPixelHalf(6.0)
+#define kPadding YYTextCGFloatPixelHalf(6.0)
 #define kRadius 6.0
 #define kHeight 32.0
 #define kArrow 14.0
@@ -258,8 +258,8 @@
         CGPathCloseSubpath(path);
         
         CGMutablePathRef arrowPath = CGPathCreateMutable();
-        CGPathMoveToPoint(arrowPath, NULL, size.width / 2 - kArrow, YYCGFloatPixelFloor(kPadding) + kHeight);
-        CGPathAddLineToPoint(arrowPath, NULL, size.width / 2 + kArrow, YYCGFloatPixelFloor(kPadding) + kHeight);
+        CGPathMoveToPoint(arrowPath, NULL, size.width / 2 - kArrow, YYTextCGFloatPixelFloor(kPadding) + kHeight);
+        CGPathAddLineToPoint(arrowPath, NULL, size.width / 2 + kArrow, YYTextCGFloatPixelFloor(kPadding) + kHeight);
         CGPathAddLineToPoint(arrowPath, NULL, size.width / 2, kPadding + kHeight + kArrow);
         CGPathCloseSubpath(arrowPath);
         
@@ -307,7 +307,7 @@
         CGContextSaveGState(context); {
             CGContextAddPath(context, path);
             [[UIColor colorWithWhite:0.6 alpha:1] setStroke];
-            CGContextSetLineWidth(context, YYCGFloatFromPixel(1));
+            CGContextSetLineWidth(context, YYTextCGFloatFromPixel(1));
             CGContextStrokePath(context);
         } CGContextRestoreGState(context);
         

+ 6 - 6
YYText/Component/YYTextSelectionView.m

@@ -232,7 +232,7 @@
             caretRect.origin.x = self.bounds.size.width - caretRect.size.width;
         }
     }
-    caretRect = YYCGRectPixelRound(caretRect);
+    caretRect = YYTextCGRectPixelRound(caretRect);
     if (isnan(caretRect.origin.x) || isinf(caretRect.origin.x)) caretRect.origin.x = 0;
     if (isnan(caretRect.origin.y) || isinf(caretRect.origin.y)) caretRect.origin.y = 0;
     if (isnan(caretRect.size.width) || isinf(caretRect.size.width)) caretRect.size.width = 0;
@@ -257,7 +257,7 @@
     [selectionRects enumerateObjectsUsingBlock: ^(YYTextSelectionRect *r, NSUInteger idx, BOOL *stop) {
         CGRect rect = r.rect;
         rect = CGRectStandardize(rect);
-        rect = YYCGRectPixelRound(rect);
+        rect = YYTextCGRectPixelRound(rect);
         if (r.containsStart || r.containsEnd) {
             rect = [self _standardCaretRect:rect];
             if (r.containsStart) {
@@ -289,8 +289,8 @@
     CGRect startRect = [_startGrabber touchRect];
     CGRect endRect = [_endGrabber touchRect];
     if (CGRectIntersectsRect(startRect, endRect)) {
-        CGFloat distStart = YYCGPointGetDistanceToPoint(point, YYCGRectGetCenter(startRect));
-        CGFloat distEnd = YYCGPointGetDistanceToPoint(point, YYCGRectGetCenter(endRect));
+        CGFloat distStart = YYTextCGPointGetDistanceToPoint(point, YYTextCGRectGetCenter(startRect));
+        CGFloat distEnd = YYTextCGPointGetDistanceToPoint(point, YYTextCGRectGetCenter(endRect));
         if (distEnd <= distStart) return NO;
     }
     return CGRectContainsPoint(startRect, point);
@@ -301,8 +301,8 @@
     CGRect startRect = [_startGrabber touchRect];
     CGRect endRect = [_endGrabber touchRect];
     if (CGRectIntersectsRect(startRect, endRect)) {
-        CGFloat distStart = YYCGPointGetDistanceToPoint(point, YYCGRectGetCenter(startRect));
-        CGFloat distEnd = YYCGPointGetDistanceToPoint(point, YYCGRectGetCenter(endRect));
+        CGFloat distStart = YYTextCGPointGetDistanceToPoint(point, YYTextCGRectGetCenter(startRect));
+        CGFloat distEnd = YYTextCGPointGetDistanceToPoint(point, YYTextCGRectGetCenter(endRect));
         if (distEnd > distStart) return NO;
     }
     return CGRectContainsPoint(endRect, point);

+ 3 - 3
YYText/String/YYTextParser.m

@@ -119,7 +119,7 @@
     _border.strokeColor = [UIColor colorWithWhite:0.546 alpha:0.650];
     _border.insets = UIEdgeInsetsMake(-1, 0, -1, 0);
     _border.cornerRadius = 2;
-    _border.strokeWidth = YYCGFloatFromPixel(1);
+    _border.strokeWidth = YYTextCGFloatFromPixel(1);
 }
 
 - (void)setColorWithDarkTheme {
@@ -136,7 +136,7 @@
     _border.strokeColor = [UIColor colorWithWhite:1.000 alpha:0.280];
     _border.insets = UIEdgeInsetsMake(-1, 0, -1, 0);
     _border.cornerRadius = 2;
-    _border.strokeWidth = YYCGFloatFromPixel(1);
+    _border.strokeWidth = YYTextCGFloatFromPixel(1);
 }
 
 - (NSUInteger)lenghOfBeginWhiteInString:(NSString *)str withRange:(NSRange)range{
@@ -285,7 +285,7 @@
             border.strokeColor = [UIColor colorWithWhite:0.200 alpha:0.300];
             border.insets = UIEdgeInsetsMake(-1, 0, -1, 0);
             border.cornerRadius = 3;
-            border.strokeWidth = YYCGFloatFromPixel(2);
+            border.strokeWidth = YYTextCGFloatFromPixel(2);
             [text yy_setTextBlockBorder:_border.copy range:codeR];
         }
     }];

+ 3 - 3
YYText/Utility/NSAttributedString+YYText.m

@@ -630,9 +630,9 @@ return style. _attr_;
         if (frameCount.intValue > 1) hasAnim = YES;
     }
     
-    CGFloat ascent = YYEmojiGetAscentWithFontSize(fontSize);
-    CGFloat descent = YYEmojiGetDescentWithFontSize(fontSize);
-    CGRect bounding = YYEmojiGetGlyphBoundingRectWithFontSize(fontSize);
+    CGFloat ascent = YYTextEmojiGetAscentWithFontSize(fontSize);
+    CGFloat descent = YYTextEmojiGetDescentWithFontSize(fontSize);
+    CGRect bounding = YYTextEmojiGetGlyphBoundingRectWithFontSize(fontSize);
     
     YYTextRunDelegate *delegate = [YYTextRunDelegate new];
     delegate.ascent = ascent;

+ 71 - 71
YYText/Utility/YYTextUtilities.h

@@ -14,12 +14,12 @@
 #import <CoreText/CoreText.h>
 
 
-#ifndef YY_CLAMP // return the clamped value
-#define YY_CLAMP(_x_, _low_, _high_)  (((_x_) > (_high_)) ? (_high_) : (((_x_) < (_low_)) ? (_low_) : (_x_)))
+#ifndef YYTEXT_CLAMP // return the clamped value
+#define YYTEXT_CLAMP(_x_, _low_, _high_)  (((_x_) > (_high_)) ? (_high_) : (((_x_) < (_low_)) ? (_low_) : (_x_)))
 #endif
 
-#ifndef YY_SWAP // swap two value
-#define YY_SWAP(_a_, _b_)  do { __typeof__(_a_) _tmp_ = (_a_); (_a_) = (_b_); (_b_) = _tmp_; } while (0)
+#ifndef YYTEXT_SWAP // swap two value
+#define YYTEXT_SWAP(_a_, _b_)  do { __typeof__(_a_) _tmp_ = (_a_); (_a_) = (_b_); (_b_) = _tmp_; } while (0)
 #endif
 
 
@@ -95,7 +95,7 @@ static inline NSUInteger YYTextLinebreakTailLength(NSString *str) {
  @param types  The `UIDataDetectorTypes` type.
  @return The `NSTextCheckingType` type.
  */
-static inline NSTextCheckingType YYNSTextCheckingTypeFromUIDataDetectorType(UIDataDetectorTypes types) {
+static inline NSTextCheckingType YYTextNSTextCheckingTypeFromUIDataDetectorType(UIDataDetectorTypes types) {
     NSTextCheckingType t = 0;
     if (types & UIDataDetectorTypePhoneNumber) t |= NSTextCheckingTypePhoneNumber;
     if (types & UIDataDetectorTypeLink) t |= NSTextCheckingTypeLink;
@@ -110,7 +110,7 @@ static inline NSTextCheckingType YYNSTextCheckingTypeFromUIDataDetectorType(UIDa
  @param font  A font.
  @return YES: the font is Emoji, NO: the font is not Emoji.
  */
-static inline BOOL YYUIFontIsEmoji(UIFont *font) {
+static inline BOOL YYTextUIFontIsEmoji(UIFont *font) {
     return [font.fontName isEqualToString:@"AppleColorEmoji"];
 }
 
@@ -120,7 +120,7 @@ static inline BOOL YYUIFontIsEmoji(UIFont *font) {
  @param font  A font.
  @return YES: the font is Emoji, NO: the font is not Emoji.
  */
-static inline BOOL YYCTFontIsEmoji(CTFontRef font) {
+static inline BOOL YYTextCTFontIsEmoji(CTFontRef font) {
     BOOL isEmoji = NO;
     CFStringRef name = CTFontCopyPostScriptName(font);
     if (name && CFEqual(CFSTR("AppleColorEmoji"), name)) isEmoji = YES;
@@ -134,7 +134,7 @@ static inline BOOL YYCTFontIsEmoji(CTFontRef font) {
  @param font  A font.
  @return YES: the font is Emoji, NO: the font is not Emoji.
  */
-static inline BOOL YYCGFontIsEmoji(CGFontRef font) {
+static inline BOOL YYTextCGFontIsEmoji(CGFontRef font) {
     BOOL isEmoji = NO;
     CFStringRef name = CGFontCopyPostScriptName(font);
     if (name && CFEqual(CFSTR("AppleColorEmoji"), name)) isEmoji = YES;
@@ -149,7 +149,7 @@ static inline BOOL YYCGFontIsEmoji(CGFontRef font) {
  @param font  A font.
  @return YES: the font contains color bitmap glyphs, NO: the font has no color bitmap glyph.
  */
-static inline BOOL YYCTFontContainsColorBitmapGlyphs(CTFontRef font) {
+static inline BOOL YYTextCTFontContainsColorBitmapGlyphs(CTFontRef font) {
     return  (CTFontGetSymbolicTraits(font) & kCTFontTraitColorGlyphs) != 0;
 }
 
@@ -160,9 +160,9 @@ static inline BOOL YYCTFontContainsColorBitmapGlyphs(CTFontRef font) {
  @param glyph The glyph which is created from the specified font.
  @return YES: the glyph is bitmap, NO: the glyph is vector.
  */
-static inline BOOL YYCGGlyphIsBitmap(CTFontRef font, CGGlyph glyph) {
+static inline BOOL YYTextCGGlyphIsBitmap(CTFontRef font, CGGlyph glyph) {
     if (!font && !glyph) return NO;
-    if (!YYCTFontContainsColorBitmapGlyphs(font)) return NO;
+    if (!YYTextCTFontContainsColorBitmapGlyphs(font)) return NO;
     CGPathRef path = CTFontCreatePathForGlyph(font, glyph, NULL);
     if (path) {
         CFRelease(path);
@@ -178,7 +178,7 @@ static inline BOOL YYCGGlyphIsBitmap(CTFontRef font, CGGlyph glyph) {
  @param fontSize  The specified font size.
  @return The font ascent.
  */
-static inline CGFloat YYEmojiGetAscentWithFontSize(CGFloat fontSize) {
+static inline CGFloat YYTextEmojiGetAscentWithFontSize(CGFloat fontSize) {
     if (fontSize < 16) {
         return 1.25 * fontSize;
     } else if (16 <= fontSize && fontSize <= 24) {
@@ -195,7 +195,7 @@ static inline CGFloat YYEmojiGetAscentWithFontSize(CGFloat fontSize) {
  @param fontSize  The specified font size.
  @return The font descent.
  */
-static inline CGFloat YYEmojiGetDescentWithFontSize(CGFloat fontSize) {
+static inline CGFloat YYTextEmojiGetDescentWithFontSize(CGFloat fontSize) {
     if (fontSize < 16) {
         return 0.390625 * fontSize;
     } else if (16 <= fontSize && fontSize <= 24) {
@@ -213,10 +213,10 @@ static inline CGFloat YYEmojiGetDescentWithFontSize(CGFloat fontSize) {
  @param fontSize  The specified font size.
  @return The font glyph bounding rect.
  */
-static inline CGRect YYEmojiGetGlyphBoundingRectWithFontSize(CGFloat fontSize) {
+static inline CGRect YYTextEmojiGetGlyphBoundingRectWithFontSize(CGFloat fontSize) {
     CGRect rect;
     rect.origin.x = 0.75;
-    rect.size.width = rect.size.height = YYEmojiGetAscentWithFontSize(fontSize);
+    rect.size.width = rect.size.height = YYTextEmojiGetAscentWithFontSize(fontSize);
     if (fontSize < 16) {
         rect.origin.y = -0.2525 * fontSize;
     } else if (16 <= fontSize && fontSize <= 24) {
@@ -243,12 +243,12 @@ NSCharacterSet *YYTextVerticalFormRotateAndMoveCharacterSet();
 
 
 /// Convert degrees to radians.
-static inline CGFloat YYDegreesToRadians(CGFloat degrees) {
+static inline CGFloat YYTextDegreesToRadians(CGFloat degrees) {
     return degrees * M_PI / 180;
 }
 
 /// Convert radians to degrees.
-static inline CGFloat YYRadiansToDegrees(CGFloat radians) {
+static inline CGFloat YYTextRadiansToDegrees(CGFloat radians) {
     return radians * 180 / M_PI;
 }
 
@@ -256,27 +256,27 @@ static inline CGFloat YYRadiansToDegrees(CGFloat radians) {
 
 /// Get the transform rotation.
 /// @return the rotation in radians [-PI,PI] ([-180°,180°])
-static inline CGFloat YYCGAffineTransformGetRotation(CGAffineTransform transform) {
+static inline CGFloat YYTextCGAffineTransformGetRotation(CGAffineTransform transform) {
     return atan2(transform.b, transform.a);
 }
 
 /// Get the transform's scale.x
-static inline CGFloat YYCGAffineTransformGetScaleX(CGAffineTransform transform) {
+static inline CGFloat YYTextCGAffineTransformGetScaleX(CGAffineTransform transform) {
     return  sqrt(transform.a * transform.a + transform.c * transform.c);
 }
 
 /// Get the transform's scale.y
-static inline CGFloat YYCGAffineTransformGetScaleY(CGAffineTransform transform) {
+static inline CGFloat YYTextCGAffineTransformGetScaleY(CGAffineTransform transform) {
     return sqrt(transform.b * transform.b + transform.d * transform.d);
 }
 
 /// Get the transform's translate.x
-static inline CGFloat YYCGAffineTransformGetTranslateX(CGAffineTransform transform) {
+static inline CGFloat YYTextCGAffineTransformGetTranslateX(CGAffineTransform transform) {
     return transform.tx;
 }
 
 /// Get the transform's translate.y
-static inline CGFloat YYCGAffineTransformGetTranslateY(CGAffineTransform transform) {
+static inline CGFloat YYTextCGAffineTransformGetTranslateY(CGAffineTransform transform) {
     return transform.ty;
 }
 
@@ -289,13 +289,13 @@ static inline CGFloat YYCGAffineTransformGetTranslateY(CGAffineTransform transfo
  
  @see http://stackoverflow.com/questions/13291796/calculate-values-for-a-cgaffinetransform-from-three-points-in-each-of-two-uiview
  */
-CGAffineTransform YYCGAffineTransformGetFromPoints(CGPoint before[3], CGPoint after[3]);
+CGAffineTransform YYTextCGAffineTransformGetFromPoints(CGPoint before[3], CGPoint after[3]);
 
 /// Get the transform which can converts a point from the coordinate system of a given view to another.
-CGAffineTransform YYCGAffineTransformGetFromViews(UIView *from, UIView *to);
+CGAffineTransform YYTextCGAffineTransformGetFromViews(UIView *from, UIView *to);
 
 /// Create a skew transform.
-static inline CGAffineTransform YYCGAffineTransformMakeSkew(CGFloat x, CGFloat y){
+static inline CGAffineTransform YYTextCGAffineTransformMakeSkew(CGFloat x, CGFloat y){
     CGAffineTransform transform = CGAffineTransformIdentity;
     transform.c = -x;
     transform.b = y;
@@ -303,15 +303,15 @@ static inline CGAffineTransform YYCGAffineTransformMakeSkew(CGFloat x, CGFloat y
 }
 
 /// Negates/inverts a UIEdgeInsets.
-static inline UIEdgeInsets YYUIEdgeInsetsInvert(UIEdgeInsets insets) {
+static inline UIEdgeInsets YYTextUIEdgeInsetsInvert(UIEdgeInsets insets) {
     return UIEdgeInsetsMake(-insets.top, -insets.left, -insets.bottom, -insets.right);
 }
 
 /// Convert CALayer's gravity string to UIViewContentMode.
-UIViewContentMode YYCAGravityToUIViewContentMode(NSString *gravity);
+UIViewContentMode YYTextCAGravityToUIViewContentMode(NSString *gravity);
 
 /// Convert UIViewContentMode to CALayer's gravity string.
-NSString *YYUIViewContentModeToCAGravity(UIViewContentMode contentMode);
+NSString *YYTextUIViewContentModeToCAGravity(UIViewContentMode contentMode);
 
 
 
@@ -324,27 +324,27 @@ NSString *YYUIViewContentModeToCAGravity(UIViewContentMode contentMode);
  @return A resized rect for the given content mode.
  @discussion UIViewContentModeRedraw is same as UIViewContentModeScaleToFill.
  */
-CGRect YYCGRectFitWithContentMode(CGRect rect, CGSize size, UIViewContentMode mode);
+CGRect YYTextCGRectFitWithContentMode(CGRect rect, CGSize size, UIViewContentMode mode);
 
 /// Returns the center for the rectangle.
-static inline CGPoint YYCGRectGetCenter(CGRect rect) {
+static inline CGPoint YYTextCGRectGetCenter(CGRect rect) {
     return CGPointMake(CGRectGetMidX(rect), CGRectGetMidY(rect));
 }
 
 /// Returns the area of the rectangle.
-static inline CGFloat YYCGRectGetArea(CGRect rect) {
+static inline CGFloat YYTextCGRectGetArea(CGRect rect) {
     if (CGRectIsNull(rect)) return 0;
     rect = CGRectStandardize(rect);
     return rect.size.width * rect.size.height;
 }
 
 /// Returns the distance between two points.
-static inline CGFloat YYCGPointGetDistanceToPoint(CGPoint p1, CGPoint p2) {
+static inline CGFloat YYTextCGPointGetDistanceToPoint(CGPoint p1, CGPoint p2) {
     return sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));
 }
 
 /// Returns the minmium distance between a point to a rectangle.
-static inline CGFloat YYCGPointGetDistanceToRect(CGPoint p, CGRect r) {
+static inline CGFloat YYTextCGPointGetDistanceToRect(CGPoint p, CGRect r) {
     r = CGRectStandardize(r);
     if (CGRectContainsPoint(r, p)) return 0;
     CGFloat distV, distH;
@@ -369,62 +369,62 @@ CGFloat YYTextScreenScale();
 CGSize YYTextScreenSize();
 
 /// Convert point to pixel.
-static inline CGFloat YYCGFloatToPixel(CGFloat value) {
+static inline CGFloat YYTextCGFloatToPixel(CGFloat value) {
     return value * YYTextScreenScale();
 }
 
 /// Convert pixel to point.
-static inline CGFloat YYCGFloatFromPixel(CGFloat value) {
+static inline CGFloat YYTextCGFloatFromPixel(CGFloat value) {
     return value / YYTextScreenScale();
 }
 
 /// floor point value for pixel-aligned
-static inline CGFloat YYCGFloatPixelFloor(CGFloat value) {
+static inline CGFloat YYTextCGFloatPixelFloor(CGFloat value) {
     CGFloat scale = YYTextScreenScale();
     return floor(value * scale) / scale;
 }
 
 /// round point value for pixel-aligned
-static inline CGFloat YYCGFloatPixelRound(CGFloat value) {
+static inline CGFloat YYTextCGFloatPixelRound(CGFloat value) {
     CGFloat scale = YYTextScreenScale();
     return round(value * scale) / scale;
 }
 
 /// ceil point value for pixel-aligned
-static inline CGFloat YYCGFloatPixelCeil(CGFloat value) {
+static inline CGFloat YYTextCGFloatPixelCeil(CGFloat value) {
     CGFloat scale = YYTextScreenScale();
     return ceil(value * scale) / scale;
 }
 
 /// round point value to .5 pixel for path stroke (odd pixel line width pixel-aligned)
-static inline CGFloat YYCGFloatPixelHalf(CGFloat value) {
+static inline CGFloat YYTextCGFloatPixelHalf(CGFloat value) {
     CGFloat scale = YYTextScreenScale();
     return (floor(value * scale) + 0.5) / scale;
 }
 
 /// floor point value for pixel-aligned
-static inline CGPoint YYCGPointPixelFloor(CGPoint point) {
+static inline CGPoint YYTextCGPointPixelFloor(CGPoint point) {
     CGFloat scale = YYTextScreenScale();
     return CGPointMake(floor(point.x * scale) / scale,
                        floor(point.y * scale) / scale);
 }
 
 /// round point value for pixel-aligned
-static inline CGPoint YYCGPointPixelRound(CGPoint point) {
+static inline CGPoint YYTextCGPointPixelRound(CGPoint point) {
     CGFloat scale = YYTextScreenScale();
     return CGPointMake(round(point.x * scale) / scale,
                        round(point.y * scale) / scale);
 }
 
 /// ceil point value for pixel-aligned
-static inline CGPoint YYCGPointPixelCeil(CGPoint point) {
+static inline CGPoint YYTextCGPointPixelCeil(CGPoint point) {
     CGFloat scale = YYTextScreenScale();
     return CGPointMake(ceil(point.x * scale) / scale,
                        ceil(point.y * scale) / scale);
 }
 
 /// round point value to .5 pixel for path stroke (odd pixel line width pixel-aligned)
-static inline CGPoint YYCGPointPixelHalf(CGPoint point) {
+static inline CGPoint YYTextCGPointPixelHalf(CGPoint point) {
     CGFloat scale = YYTextScreenScale();
     return CGPointMake((floor(point.x * scale) + 0.5) / scale,
                        (floor(point.y * scale) + 0.5) / scale);
@@ -433,28 +433,28 @@ static inline CGPoint YYCGPointPixelHalf(CGPoint point) {
 
 
 /// floor point value for pixel-aligned
-static inline CGSize YYCGSizePixelFloor(CGSize size) {
+static inline CGSize YYTextCGSizePixelFloor(CGSize size) {
     CGFloat scale = YYTextScreenScale();
     return CGSizeMake(floor(size.width * scale) / scale,
                       floor(size.height * scale) / scale);
 }
 
 /// round point value for pixel-aligned
-static inline CGSize YYCGSizePixelRound(CGSize size) {
+static inline CGSize YYTextCGSizePixelRound(CGSize size) {
     CGFloat scale = YYTextScreenScale();
     return CGSizeMake(round(size.width * scale) / scale,
                       round(size.height * scale) / scale);
 }
 
 /// ceil point value for pixel-aligned
-static inline CGSize YYCGSizePixelCeil(CGSize size) {
+static inline CGSize YYTextCGSizePixelCeil(CGSize size) {
     CGFloat scale = YYTextScreenScale();
     return CGSizeMake(ceil(size.width * scale) / scale,
                       ceil(size.height * scale) / scale);
 }
 
 /// round point value to .5 pixel for path stroke (odd pixel line width pixel-aligned)
-static inline CGSize YYCGSizePixelHalf(CGSize size) {
+static inline CGSize YYTextCGSizePixelHalf(CGSize size) {
     CGFloat scale = YYTextScreenScale();
     return CGSizeMake((floor(size.width * scale) + 0.5) / scale,
                       (floor(size.height * scale) + 0.5) / scale);
@@ -463,9 +463,9 @@ static inline CGSize YYCGSizePixelHalf(CGSize size) {
 
 
 /// floor point value for pixel-aligned
-static inline CGRect YYCGRectPixelFloor(CGRect rect) {
-    CGPoint origin = YYCGPointPixelCeil(rect.origin);
-    CGPoint corner = YYCGPointPixelFloor(CGPointMake(rect.origin.x + rect.size.width,
+static inline CGRect YYTextCGRectPixelFloor(CGRect rect) {
+    CGPoint origin = YYTextCGPointPixelCeil(rect.origin);
+    CGPoint corner = YYTextCGPointPixelFloor(CGPointMake(rect.origin.x + rect.size.width,
                                                      rect.origin.y + rect.size.height));
     CGRect ret = CGRectMake(origin.x, origin.y, corner.x - origin.x, corner.y - origin.y);
     if (ret.size.width < 0) ret.size.width = 0;
@@ -474,25 +474,25 @@ static inline CGRect YYCGRectPixelFloor(CGRect rect) {
 }
 
 /// round point value for pixel-aligned
-static inline CGRect YYCGRectPixelRound(CGRect rect) {
-    CGPoint origin = YYCGPointPixelRound(rect.origin);
-    CGPoint corner = YYCGPointPixelRound(CGPointMake(rect.origin.x + rect.size.width,
+static inline CGRect YYTextCGRectPixelRound(CGRect rect) {
+    CGPoint origin = YYTextCGPointPixelRound(rect.origin);
+    CGPoint corner = YYTextCGPointPixelRound(CGPointMake(rect.origin.x + rect.size.width,
                                                      rect.origin.y + rect.size.height));
     return CGRectMake(origin.x, origin.y, corner.x - origin.x, corner.y - origin.y);
 }
 
 /// ceil point value for pixel-aligned
-static inline CGRect YYCGRectPixelCeil(CGRect rect) {
-    CGPoint origin = YYCGPointPixelFloor(rect.origin);
-    CGPoint corner = YYCGPointPixelCeil(CGPointMake(rect.origin.x + rect.size.width,
+static inline CGRect YYTextCGRectPixelCeil(CGRect rect) {
+    CGPoint origin = YYTextCGPointPixelFloor(rect.origin);
+    CGPoint corner = YYTextCGPointPixelCeil(CGPointMake(rect.origin.x + rect.size.width,
                                                     rect.origin.y + rect.size.height));
     return CGRectMake(origin.x, origin.y, corner.x - origin.x, corner.y - origin.y);
 }
 
 /// round point value to .5 pixel for path stroke (odd pixel line width pixel-aligned)
-static inline CGRect YYCGRectPixelHalf(CGRect rect) {
-    CGPoint origin = YYCGPointPixelHalf(rect.origin);
-    CGPoint corner = YYCGPointPixelHalf(CGPointMake(rect.origin.x + rect.size.width,
+static inline CGRect YYTextCGRectPixelHalf(CGRect rect) {
+    CGPoint origin = YYTextCGPointPixelHalf(rect.origin);
+    CGPoint corner = YYTextCGPointPixelHalf(CGPointMake(rect.origin.x + rect.size.width,
                                                     rect.origin.y + rect.size.height));
     return CGRectMake(origin.x, origin.y, corner.x - origin.x, corner.y - origin.y);
 }
@@ -500,20 +500,20 @@ static inline CGRect YYCGRectPixelHalf(CGRect rect) {
 
 
 /// floor UIEdgeInset for pixel-aligned
-static inline UIEdgeInsets YYUIEdgeInsetPixelFloor(UIEdgeInsets insets) {
-    insets.top = YYCGFloatPixelFloor(insets.top);
-    insets.left = YYCGFloatPixelFloor(insets.left);
-    insets.bottom = YYCGFloatPixelFloor(insets.bottom);
-    insets.right = YYCGFloatPixelFloor(insets.right);
+static inline UIEdgeInsets YYTextUIEdgeInsetPixelFloor(UIEdgeInsets insets) {
+    insets.top = YYTextCGFloatPixelFloor(insets.top);
+    insets.left = YYTextCGFloatPixelFloor(insets.left);
+    insets.bottom = YYTextCGFloatPixelFloor(insets.bottom);
+    insets.right = YYTextCGFloatPixelFloor(insets.right);
     return insets;
 }
 
 /// ceil UIEdgeInset for pixel-aligned
-static inline UIEdgeInsets YYUIEdgeInsetPixelCeil(UIEdgeInsets insets) {
-    insets.top = YYCGFloatPixelCeil(insets.top);
-    insets.left = YYCGFloatPixelCeil(insets.left);
-    insets.bottom = YYCGFloatPixelCeil(insets.bottom);
-    insets.right = YYCGFloatPixelCeil(insets.right);
+static inline UIEdgeInsets YYTextUIEdgeInsetPixelCeil(UIEdgeInsets insets) {
+    insets.top = YYTextCGFloatPixelCeil(insets.top);
+    insets.left = YYTextCGFloatPixelCeil(insets.left);
+    insets.bottom = YYTextCGFloatPixelCeil(insets.bottom);
+    insets.right = YYTextCGFloatPixelCeil(insets.right);
     return insets;
 }
 
@@ -540,7 +540,7 @@ static inline UIFont * YYTextFontWithBoldItalic(UIFont *font) {
  Convert CFRange to NSRange
  @param range CFRange @return NSRange
  */
-static inline NSRange YYNSRangeFromCFRange(CFRange range) {
+static inline NSRange YYTextNSRangeFromCFRange(CFRange range) {
     return NSMakeRange(range.location, range.length);
 }
 
@@ -548,7 +548,7 @@ static inline NSRange YYNSRangeFromCFRange(CFRange range) {
  Convert NSRange to CFRange
  @param range NSRange @return CFRange
  */
-static inline CFRange YYCFRangeFromNSRange(NSRange range) {
+static inline CFRange YYTextCFRangeFromNSRange(NSRange range) {
     return CFRangeMake(range.location, range.length);
 }
 

+ 6 - 6
YYText/Utility/YYTextUtilities.m

@@ -99,7 +99,7 @@ static int matrix_invert(__CLPK_integer N, double *matrix) {
     return error;
 }
 
-CGAffineTransform YYCGAffineTransformGetFromPoints(CGPoint before[3], CGPoint after[3]) {
+CGAffineTransform YYTextCGAffineTransformGetFromPoints(CGPoint before[3], CGPoint after[3]) {
     if (before == NULL || after == NULL) return CGAffineTransformIdentity;
     
     CGPoint p1, p2, p3, q1, q2, q3;
@@ -132,7 +132,7 @@ CGAffineTransform YYCGAffineTransformGetFromPoints(CGPoint before[3], CGPoint af
     return transform;
 }
 
-CGAffineTransform YYCGAffineTransformGetFromViews(UIView *from, UIView *to) {
+CGAffineTransform YYTextCGAffineTransformGetFromViews(UIView *from, UIView *to) {
     if (!from || !to) return CGAffineTransformIdentity;
     
     CGPoint before[3], after[3];
@@ -143,10 +143,10 @@ CGAffineTransform YYCGAffineTransformGetFromViews(UIView *from, UIView *to) {
     after[1] = [from yy_convertPoint:before[1] toViewOrWindow:to];
     after[2] = [from yy_convertPoint:before[2] toViewOrWindow:to];
     
-    return YYCGAffineTransformGetFromPoints(before, after);
+    return YYTextCGAffineTransformGetFromPoints(before, after);
 }
 
-UIViewContentMode YYCAGravityToUIViewContentMode(NSString *gravity) {
+UIViewContentMode YYTextCAGravityToUIViewContentMode(NSString *gravity) {
     static NSDictionary *dic;
     static dispatch_once_t onceToken;
     dispatch_once(&onceToken, ^{
@@ -167,7 +167,7 @@ UIViewContentMode YYCAGravityToUIViewContentMode(NSString *gravity) {
     return (UIViewContentMode)((NSNumber *)dic[gravity]).integerValue;
 }
 
-NSString *YYUIViewContentModeToCAGravity(UIViewContentMode contentMode) {
+NSString *YYTextUIViewContentModeToCAGravity(UIViewContentMode contentMode) {
     switch (contentMode) {
         case UIViewContentModeScaleToFill: return kCAGravityResize;
         case UIViewContentModeScaleAspectFit: return kCAGravityResizeAspect;
@@ -186,7 +186,7 @@ NSString *YYUIViewContentModeToCAGravity(UIViewContentMode contentMode) {
     }
 }
 
-CGRect YYCGRectFitWithContentMode(CGRect rect, CGSize size, UIViewContentMode mode) {
+CGRect YYTextCGRectFitWithContentMode(CGRect rect, CGSize size, UIViewContentMode mode) {
     rect = CGRectStandardize(rect);
     size.width = size.width < 0 ? -size.width : size.width;
     size.height = size.height < 0 ? -size.height : size.height;

+ 6 - 3
YYText/YYLabel.m

@@ -391,10 +391,13 @@ static dispatch_queue_t YYLabelGetReleaseQueue() {
     CGSize newSize = self.bounds.size;
     if (!CGSizeEqualToSize(oldSize, newSize)) {
         _innerContainer.size = self.bounds.size;
+        if (!_ignoreCommonProperties) {
+            _state.layoutNeedUpdate = YES;
+        }
         if (_displaysAsynchronously && _clearContentsBeforeAsynchronouslyDisplay) {
             [self _clearContents];
         }
-        [self _setLayoutNeedUpdate];
+        [self _setLayoutNeedRedraw];
     }
 }
 
@@ -933,7 +936,7 @@ static dispatch_queue_t YYLabelGetReleaseQueue() {
                 point.y = (size.height - boundingSize.height);
             }
         }
-        point = YYCGPointPixelRound(point);
+        point = YYTextCGPointPixelRound(point);
         [layout drawInContext:context size:size point:point view:nil layer:nil debug:debug cancel:isCancelled];
     };
 
@@ -978,7 +981,7 @@ static dispatch_queue_t YYLabelGetReleaseQueue() {
                 point.y = (size.height - boundingSize.height);
             }
         }
-        point = YYCGPointPixelRound(point);
+        point = YYTextCGPointPixelRound(point);
         [layout drawInContext:nil size:CGSizeZero point:point view:view layer:layer debug:nil cancel:NULL];
         for (YYTextAttachment *a in layout.attachments) {
             if ([a.content isKindOfClass:[UIView class]]) [attachmentViews addObject:a.content];

+ 8 - 8
YYText/YYTextView.m

@@ -510,9 +510,9 @@ typedef NS_ENUM(NSUInteger, YYTextMoveDirection) {
         YYTextLine *line = _innerLayout.lines[lineIndex];
         CGRect lineRect = [self _convertRectFromLayout:line.bounds];
         if (_verticalForm) {
-            magPoint.x = YY_CLAMP(magPoint.x, CGRectGetMinX(lineRect), CGRectGetMaxX(lineRect));
+            magPoint.x = YYTEXT_CLAMP(magPoint.x, CGRectGetMinX(lineRect), CGRectGetMaxX(lineRect));
         } else {
-            magPoint.y = YY_CLAMP(magPoint.y, CGRectGetMinY(lineRect), CGRectGetMaxY(lineRect));
+            magPoint.y = YYTEXT_CLAMP(magPoint.y, CGRectGetMinY(lineRect), CGRectGetMaxY(lineRect));
         }
         CGPoint linePoint = [_innerLayout linePositionForPosition:position];
         linePoint = [self _convertPointFromLayout:linePoint];
@@ -1176,10 +1176,10 @@ typedef NS_ENUM(NSUInteger, YYTextMoveDirection) {
     if (lineIndex < _innerLayout.lines.count) {
         YYTextLine *line = _innerLayout.lines[lineIndex];
         if (_verticalForm) {
-            magPoint.x = YY_CLAMP(magPoint.x, line.left, line.right);
+            magPoint.x = YYTEXT_CLAMP(magPoint.x, line.left, line.right);
             return magPoint.x - line.position.x + kMagnifierRangedPopoverOffset;
         } else {
-            magPoint.y = YY_CLAMP(magPoint.y, line.top, line.bottom);
+            magPoint.y = YYTEXT_CLAMP(magPoint.y, line.top, line.bottom);
             return magPoint.y - line.position.y + kMagnifierRangedPopoverOffset;
         }
     } else {
@@ -2087,7 +2087,7 @@ typedef NS_ENUM(NSUInteger, YYTextMoveDirection) {
 - (void)setDataDetectorTypes:(UIDataDetectorTypes)dataDetectorTypes {
     if (_dataDetectorTypes == dataDetectorTypes) return;
     [self _setDataDetectorTypes:dataDetectorTypes];
-    NSTextCheckingType type = YYNSTextCheckingTypeFromUIDataDetectorType(dataDetectorTypes);
+    NSTextCheckingType type = YYTextNSTextCheckingTypeFromUIDataDetectorType(dataDetectorTypes);
     _dataDetector = type ? [NSDataDetector dataDetectorWithTypes:type error:NULL] : nil;
     [self _resetUndoAndRedoStack];
     [self _commitUpdate];
@@ -2454,7 +2454,7 @@ typedef NS_ENUM(NSUInteger, YYTextMoveDirection) {
 
 - (CGSize)sizeThatFits:(CGSize)size {
     YYTextLayout *textLayout = self.textLayout;
-    CGSize currentSize = YYCGSizePixelCeil(textLayout.textBoundingSize);
+    CGSize currentSize = YYTextCGSizePixelCeil(textLayout.textBoundingSize);
     if (_verticalForm) {
         if (currentSize.height == size.height) return currentSize;
     } else {
@@ -2470,7 +2470,7 @@ typedef NS_ENUM(NSUInteger, YYTextMoveDirection) {
     newContainer.size = size;
     YYTextLayout *newLayout = [YYTextLayout layoutWithContainer:newContainer text:textLayout.text];
     CGSize newSize = newLayout.textBoundingSize;
-    return YYCGSizePixelCeil(newSize);
+    return YYTextCGSizePixelCeil(newSize);
 }
 
 #pragma mark - Override UIResponder
@@ -3623,7 +3623,7 @@ typedef NS_ENUM(NSUInteger, YYTextMoveDirection) {
                 caretRect.origin.x = self.bounds.size.width - caretRect.size.width;
             }
         }
-        return YYCGRectPixelRound(caretRect);
+        return YYTextCGRectPixelRound(caretRect);
     }
     return CGRectZero;
 }