为了围绕布局问题开展工作,以及使用<代码>-render InContext: 提取层层层级并不保护病媒元素,我们在。 CPLayer子类优先于缺损-drawInContext:
。 称作我们习俗的方法:-renderAsVectorInContext:
(我们用所有核心图表绘制一层)。 为了形成一种用于印刷的PDF环境(或类似),我们然后采用一种符合以下标准的习俗方法:
-(void)recursivelyRenderInContext:(CGContextRef)context
{
// render self
CGContextSaveGState(context);
[self applyTransform:self.transform toContext:context];
self.renderingRecursively = YES;
if ( !self.masksToBounds ) {
CGContextSaveGState(context);
}
[self renderAsVectorInContext:context];
if ( !self.masksToBounds ) {
CGContextRestoreGState(context);
}
self.renderingRecursively = NO;
// render sublayers
for ( CALayer *currentSublayer in self.sublayers ) {
CGContextSaveGState(context);
// Shift origin of context to match starting coordinate of sublayer
CGPoint currentSublayerFrameOrigin = currentSublayer.frame.origin;
CGRect currentSublayerBounds = currentSublayer.bounds;
CGContextTranslateCTM(context,
currentSublayerFrameOrigin.x - currentSublayerBounds.origin.x,
currentSublayerFrameOrigin.y - currentSublayerBounds.origin.y);
[self applyTransform:self.sublayerTransform toContext:context];
if ( [currentSublayer isKindOfClass:[CPLayer class]] ) {
[(CPLayer *)currentSublayer recursivelyRenderInContext:context];
} else {
if ( self.masksToBounds ) {
CGContextClipToRect(context, currentSublayer.bounds);
}
[currentSublayer drawInContext:context];
}
CGContextRestoreGState(context);
}
CGContextRestoreGState(context);
}
这贯穿各个层面,使每个层面都处于统一的核心图表背景之中,保持立场、轮换和其他变革,同时使所有要素成为剧毒媒介。
试图使等级层层层层层出不穷的另一点是,你的表述层等级可能与你的内部层等级不相同。 您可能会有用于转移其层层的图象,但层层层(<>条码><>>/条码>的特性可能没有发生变化以适应。 在这种情况下,你应当确保你要么把财产本身归结起来,这样,这些价值就永远保持yn合,要么一俟 an灭,就在贵层次上树立价值观。