简言之,你们必须通过所有次表加以调整,使每个人都能改变目前的背景道路,然后将这条道路作为一条lipp路。 你们可以要求从每一种观点出发,或者把背景传递给每一种观点。
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState( context );
CGContextBeginPath( context );
for ( view in subviews ) {
if ( [view respondsToSelector:@selector(pathTranslatedForView:)] ) {
CGContextAddPath( context , [(MyCustomViewPath *)view pathTranslatedForView:self] );
}
}
CGContextClip( context );
// do stuff with clipping path
CGContextRestoreGState( context );
Edit:
在提出分观点时,您不妨调整背景,以便0,0,即所谓的观点,而不是表面观点:
CGRect frame = [view frame];
CGContextTranslateCTM( context , -frame.origin.x , -frame.origin.y );
CGContextAddPath( context , [(MyCustomViewPath *)view path];
CGContextTranslateCTM( context , frame.origin.x , frame.origin.y );