From c0125010c11e3f4ce7c8ee1e5a8e92c91d64a63e Mon Sep 17 00:00:00 2001 From: Adlai Holler Date: Thu, 27 Oct 2016 11:48:49 -0700 Subject: [PATCH] Workaround iOS 7 text drawing bug (#2492) --- AsyncDisplayKit/TextKit/ASTextKitRenderer.mm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/AsyncDisplayKit/TextKit/ASTextKitRenderer.mm b/AsyncDisplayKit/TextKit/ASTextKitRenderer.mm index 4a6f5978c0..d8ce5f84b5 100755 --- a/AsyncDisplayKit/TextKit/ASTextKitRenderer.mm +++ b/AsyncDisplayKit/TextKit/ASTextKitRenderer.mm @@ -265,7 +265,12 @@ static NSCharacterSet *_defaultAvoidTruncationCharacterSet() // If we use default options, we can use NSAttributedString for a // fast path. if (self.canUseFastPath) { - [_attributes.attributedString drawWithRect:shadowInsetBounds options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleLine context:self.stringDrawingContext]; + CGRect drawingBounds = shadowInsetBounds; + // Add a fudge-factor to the height, to workaround a bug in iOS 7 + if (AS_AT_LEAST_IOS8 == NO) { + drawingBounds.size.height += 3; + } + [_attributes.attributedString drawWithRect:drawingBounds options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleLine context:self.stringDrawingContext]; } else { BOOL isScaled = [self isScaled]; [[self context] performBlockWithLockedTextKitComponents:^(NSLayoutManager *layoutManager, NSTextStorage *textStorage, NSTextContainer *textContainer) {