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

---
 screendisplay/Pods/YYText/YYText/Component/YYTextContainerView.m |  144 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 144 insertions(+), 0 deletions(-)

diff --git a/screendisplay/Pods/YYText/YYText/Component/YYTextContainerView.m b/screendisplay/Pods/YYText/YYText/Component/YYTextContainerView.m
new file mode 100755
index 0000000..e3b7ee8
--- /dev/null
+++ b/screendisplay/Pods/YYText/YYText/Component/YYTextContainerView.m
@@ -0,0 +1,144 @@
+//
+//  YYTextContainerView.m
+//  YYText <https://github.com/ibireme/YYText>
+//
+//  Created by ibireme on 15/4/21.
+//  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 "YYTextContainerView.h"
+
+@implementation YYTextContainerView {
+    BOOL _attachmentChanged;
+    NSMutableArray *_attachmentViews;
+    NSMutableArray *_attachmentLayers;
+}
+
+- (instancetype)initWithFrame:(CGRect)frame {
+    self = [super initWithFrame:frame];
+    if (!self) return nil;
+    self.backgroundColor = [UIColor clearColor];
+    _attachmentViews = [NSMutableArray array];
+    _attachmentLayers = [NSMutableArray array];
+    return self;
+}
+
+- (void)setDebugOption:(YYTextDebugOption *)debugOption {
+    BOOL needDraw = _debugOption.needDrawDebug;
+    _debugOption = debugOption.copy;
+    if (_debugOption.needDrawDebug != needDraw) {
+        [self setNeedsDisplay];
+    }
+}
+
+- (void)setTextVerticalAlignment:(YYTextVerticalAlignment)textVerticalAlignment {
+    if (_textVerticalAlignment == textVerticalAlignment) return;
+    _textVerticalAlignment = textVerticalAlignment;
+    [self setNeedsDisplay];
+}
+
+- (void)setContentsFadeDuration:(NSTimeInterval)contentsFadeDuration {
+    if (_contentsFadeDuration == contentsFadeDuration) return;
+    _contentsFadeDuration = contentsFadeDuration;
+    if (contentsFadeDuration <= 0) {
+        [self.layer removeAnimationForKey:@"contents"];
+    }
+}
+
+- (void)setLayout:(YYTextLayout *)layout {
+    if (_layout == layout) return;
+    _layout = layout;
+    _attachmentChanged = YES;
+    [self setNeedsDisplay];
+}
+
+- (void)setLayout:(YYTextLayout *)layout withFadeDuration:(NSTimeInterval)fadeDuration {
+    self.contentsFadeDuration = fadeDuration;
+    self.layout = layout;
+}
+
+- (void)drawRect:(CGRect)rect {
+    // fade content
+    [self.layer removeAnimationForKey:@"contents"];
+    if (_contentsFadeDuration > 0) {
+        CATransition *transition = [CATransition animation];
+        transition.duration = _contentsFadeDuration;
+        transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
+        transition.type = kCATransitionFade;
+        [self.layer addAnimation:transition forKey:@"contents"];
+    }
+    
+    // update attachment
+    if (_attachmentChanged) {
+        for (UIView *view in _attachmentViews) {
+            if (view.superview == self) [view removeFromSuperview];
+        }
+        for (CALayer *layer in _attachmentLayers) {
+            if (layer.superlayer == self.layer) [layer removeFromSuperlayer];
+        }
+        [_attachmentViews removeAllObjects];
+        [_attachmentLayers removeAllObjects];
+    }
+    
+    // draw layout
+    CGSize boundingSize = _layout.textBoundingSize;
+    CGPoint point = CGPointZero;
+    if (_textVerticalAlignment == YYTextVerticalAlignmentCenter) {
+        if (_layout.container.isVerticalForm) {
+            point.x = -(self.bounds.size.width - boundingSize.width) * 0.5;
+        } else {
+            point.y = (self.bounds.size.height - boundingSize.height) * 0.5;
+        }
+    } else if (_textVerticalAlignment == YYTextVerticalAlignmentBottom) {
+        if (_layout.container.isVerticalForm) {
+            point.x = -(self.bounds.size.width - boundingSize.width);
+        } else {
+            point.y = (self.bounds.size.height - boundingSize.height);
+        }
+    }
+    [_layout drawInContext:UIGraphicsGetCurrentContext() size:self.bounds.size point:point view:self layer:self.layer debug:_debugOption cancel:nil];
+    
+    // update attachment
+    if (_attachmentChanged) {
+        _attachmentChanged = NO;
+        for (YYTextAttachment *a in _layout.attachments) {
+            if ([a.content isKindOfClass:[UIView class]]) [_attachmentViews addObject:a.content];
+            if ([a.content isKindOfClass:[CALayer class]]) [_attachmentLayers addObject:a.content];
+        }
+    }
+}
+
+- (void)setFrame:(CGRect)frame {
+    CGSize oldSize = self.bounds.size;
+    [super setFrame:frame];
+    if (!CGSizeEqualToSize(oldSize, self.bounds.size)) {
+        [self setNeedsLayout];
+    }
+}
+
+- (void)setBounds:(CGRect)bounds {
+    CGSize oldSize = self.bounds.size;
+    [super setBounds:bounds];
+    if (!CGSizeEqualToSize(oldSize, self.bounds.size)) {
+        [self setNeedsLayout];
+    }
+}
+
+#pragma mark - UIResponder forward
+
+- (BOOL)canBecomeFirstResponder {
+    return YES;
+}
+
+- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
+    return [self.hostView canPerformAction:action withSender:sender];
+}
+
+- (id)forwardingTargetForSelector:(SEL)aSelector {
+    return self.hostView;
+}
+
+@end

--
Gitblit v1.8.0