下の図のようないくつかのテキストを使用してCoreTextレイアウトを使用するコードを作成しました。赤い長方形はテキスト領域で、黒い長方形は画像やその他のオブジェクトでは空です。私はkCTFrameClippingPathsAttributeName
TellCoreTextを使用して、黒い長方形はテキストを表示しないことを伝えます。
以下の詳細画像:
なぜこの位置にテキストが表示されるのですか?赤い長方形と黒い長方形の領域は非常に小さく、サイズは幅1pxしかないのに、なぜテキストが表示されるのでしょうか。
右の赤い長方形のフレームは(533, 40, 440, 668)
、右の小さな長方形のフレームは(534, 98, 440, 399)
です。
そのようなコード:
CGPathRef textArea;
// An array of clipping paths
NSMutableArray * clippingPaths = [NSMutableArray array];
for (TNPageMedium *medium in self.media) {
NSDictionary *clippingPathDict = @{(NSString *)kCTFramePathClippingPathAttributeName:(__bridge id)path};
[clippingPaths addObject:clippingPathDict];
}
NSDictionary *optionsDict = @{(NSString*)kCTFrameClippingPathsAttributeName : clippingPaths};
// create frame using texAreaPath, an optionDictionary contains clipping paths
CTFrameRef frame = CTFramesetterCreateFrame(framesetter, CFRangeMake(pos, 0), textAreaPath, (__bridge CFDictionaryRef)(optionsDict));
// Draw Frame
CTFrameDraw(frame, context);