Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions YYText/Utility/NSAttributedString+YYText.h
Original file line number Diff line number Diff line change
Expand Up @@ -619,6 +619,13 @@ NS_ASSUME_NONNULL_BEGIN
ascent:(CGFloat)ascent
descent:(CGFloat)descent;

+ (NSMutableAttributedString *)yy_attachmentStringWithContent:(nullable id)content
contentMode:(UIViewContentMode)contentMode
width:(CGFloat)width
ascent:(CGFloat)ascent
descent:(CGFloat)descent
accessibilityLabel:(NSString *)accessibilityLabel;

/**
Creates and returns an attachment.

Expand Down Expand Up @@ -653,6 +660,13 @@ NS_ASSUME_NONNULL_BEGIN
alignToFont:(UIFont *)font
alignment:(YYTextVerticalAlignment)alignment;

+ (NSMutableAttributedString *)yy_attachmentStringWithContent:(nullable id)content
contentMode:(UIViewContentMode)contentMode
attachmentSize:(CGSize)attachmentSize
alignToFont:(UIFont *)font
alignment:(YYTextVerticalAlignment)alignment
accessibilityLabel:(NSString *)accessibilityLabel;

/**
Creates and returns an attahment from a fourquare image as if it was an emoji.

Expand Down
26 changes: 23 additions & 3 deletions YYText/Utility/NSAttributedString+YYText.m
Original file line number Diff line number Diff line change
Expand Up @@ -555,21 +555,31 @@ + (NSMutableAttributedString *)yy_attachmentStringWithContent:(id)content
width:(CGFloat)width
ascent:(CGFloat)ascent
descent:(CGFloat)descent {
return [NSMutableAttributedString yy_attachmentStringWithContent:content contentMode:contentMode width:width ascent:ascent descent:descent accessibilityLabel:nil];
}

+ (NSMutableAttributedString *)yy_attachmentStringWithContent:(id)content
contentMode:(UIViewContentMode)contentMode
width:(CGFloat)width
ascent:(CGFloat)ascent
descent:(CGFloat)descent
accessibilityLabel:(NSString *)accessibilityLabel {
NSMutableAttributedString *atr = [[NSMutableAttributedString alloc] initWithString:YYTextAttachmentToken];

YYTextAttachment *attach = [YYTextAttachment new];
attach.content = content;
attach.accessibilityLabel = accessibilityLabel;
attach.contentMode = contentMode;
[atr yy_setTextAttachment:attach range:NSMakeRange(0, atr.length)];

YYTextRunDelegate *delegate = [YYTextRunDelegate new];
delegate.width = width;
delegate.ascent = ascent;
delegate.descent = descent;
CTRunDelegateRef delegateRef = delegate.CTRunDelegate;
[atr yy_setRunDelegate:delegateRef range:NSMakeRange(0, atr.length)];
if (delegate) CFRelease(delegateRef);

return atr;
}

Expand All @@ -578,10 +588,20 @@ + (NSMutableAttributedString *)yy_attachmentStringWithContent:(id)content
attachmentSize:(CGSize)attachmentSize
alignToFont:(UIFont *)font
alignment:(YYTextVerticalAlignment)alignment {
return [NSAttributedString yy_attachmentStringWithContent:content contentMode:contentMode attachmentSize:attachmentSize alignToFont:font alignment:alignment accessibilityLabel:nil];
}

+ (NSMutableAttributedString *)yy_attachmentStringWithContent:(id)content
contentMode:(UIViewContentMode)contentMode
attachmentSize:(CGSize)attachmentSize
alignToFont:(UIFont *)font
alignment:(YYTextVerticalAlignment)alignment
accessibilityLabel:(NSString *)accessibilityLabel {
NSMutableAttributedString *atr = [[NSMutableAttributedString alloc] initWithString:YYTextAttachmentToken];

YYTextAttachment *attach = [YYTextAttachment new];
attach.content = content;
attach.accessibilityLabel = accessibilityLabel;
attach.contentMode = contentMode;
[atr yy_setTextAttachment:attach range:NSMakeRange(0, atr.length)];

Expand Down