// // YYTextRunDelegate.h // YYKit // // Created by ibireme on 14/10/14. // 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 #import NS_ASSUME_NONNULL_BEGIN /** Wrapper for CTRunDelegateRef. Example: YYTextRunDelegate *delegate = [YYTextRunDelegate new]; delegate.ascent = 20; delegate.descent = 4; delegate.width = 20; CTRunDelegateRef ctRunDelegate = delegate.CTRunDelegate; if (ctRunDelegate) { /// add to attributed string CFRelease(ctRunDelegate); } */ @interface YYTextRunDelegate : NSObject /** Creates and returns the CTRunDelegate. @discussion You need call CFRelease() after used. The CTRunDelegateRef has a strong reference to this YYTextRunDelegate object. In CoreText, use CTRunDelegateGetRefCon() to get this YYTextRunDelegate object. @return The CTRunDelegate object. */ - (nullable CTRunDelegateRef)CTRunDelegate CF_RETURNS_RETAINED; /** Additional information about the the run delegate. */ @property (nullable, nonatomic, strong) NSDictionary *userInfo; /** The typographic ascent of glyphs in the run. */ @property (nonatomic) CGFloat ascent; /** The typographic descent of glyphs in the run. */ @property (nonatomic) CGFloat descent; /** The typographic width of glyphs in the run. */ @property (nonatomic) CGFloat width; @end NS_ASSUME_NONNULL_END