CTFrame

typedef const struct CF_BRIDGED_TYPE(id) __CTFrame * CTFrameRef;

CFTypeID CTFrameGetTypeID( void ) CT_AVAILABLE(10_5, 3_2);

typedef CF_ENUM(uint32_t, CTFrameProgression) {
    kCTFrameProgressionTopToBottom  = 0,
    kCTFrameProgressionRightToLeft  = 1,
    kCTFrameProgressionLeftToRight  = 2
};

CT_EXPORT const CFStringRef kCTFrameProgressionAttributeName CT_AVAILABLE(10_5, 3_2);

typedef CF_ENUM(uint32_t, CTFramePathFillRule) {
    kCTFramePathFillEvenOdd         = 0,
    kCTFramePathFillWindingNumber   = 1
};

CT_EXPORT const CFStringRef kCTFramePathFillRuleAttributeName CT_AVAILABLE(10_7, 4_2);

CT_EXPORT const CFStringRef kCTFramePathWidthAttributeName CT_AVAILABLE(10_7, 4_2);

CT_EXPORT const CFStringRef kCTFrameClippingPathsAttributeName CT_AVAILABLE(10_7, 4_3);

CFRange CTFrameGetStringRange(
    CTFrameRef frame ) CT_AVAILABLE(10_5, 3_2);

CFRange CTFrameGetVisibleStringRange(
    CTFrameRef frame ) CT_AVAILABLE(10_5, 3_2);

CT_EXPORT const CFStringRef kCTFramePathClippingPathAttributeName CT_AVAILABLE(10_7, 4_3);

CGPathRef CTFrameGetPath(
    CTFrameRef frame ) CT_AVAILABLE(10_5, 3_2);

CFDictionaryRef __nullable CTFrameGetFrameAttributes(
    CTFrameRef frame ) CT_AVAILABLE(10_5, 3_2);

CFArrayRef CTFrameGetLines(
    CTFrameRef frame ) CT_AVAILABLE(10_5, 3_2);

void CTFrameGetLineOrigins(
    CTFrameRef frame,
    CFRange range,
    CGPoint origins[] ) CT_AVAILABLE(10_5, 3_2);


void CTFrameDraw(
    CTFrameRef frame,
    CGContextRef context ) CT_AVAILABLE(10_5, 3_2);

你可能感兴趣的:(CTFrame)