2010-03-03 70 views

回答

6

這裏有一個小片段

- (void)drawRect:(CGRect)rect 
{ 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    [self patternMake2:rect context:context]; 
} 
//------------------------------------------------------------------- 
//  patternMake2 
//------------------------------------------------------------------- 
void pattern2Callback (void *info, CGContextRef context) {  
    UIImage *image = [UIImage imageNamed:@"NavBarBg.png"]; 
    CGImageRef imageRef = [image CGImage]; 
    CGContextDrawImage(context, CGRectMake(0, 0, 320, 44), imageRef); 
} 


- (void)patternMake2:(CGRect)rect context:(CGContextRef)context 
{ 
    static const CGPatternCallbacks callbacks = { 0, &pattern2Callback, NULL }; 
    //NSLog(@"rect: %f %f %f %f", rect.origin.x, rect.origin.x, rect.size.width, rect.size.height); 
    //CGContextSaveGState(context); 
    CGColorSpaceRef patternSpace = CGColorSpaceCreatePattern(NULL); 
    CGContextSetFillColorSpace(context, patternSpace); 
    CGColorSpaceRelease(patternSpace); 
    CGSize patternSize = CGSizeMake(315, 44); 
    CGPatternRef pattern = CGPatternCreate(NULL, self.bounds, CGAffineTransformIdentity, patternSize.width, patternSize.height, kCGPatternTilingConstantSpacing, true, &callbacks); 
    CGFloat alpha = 1; 
    CGContextSetFillPattern(context, pattern, &alpha); 
    CGPatternRelease(pattern); 
    CGContextFillRect(context, rect);  
    //CGContextRestoreGState(context); 
} 
+0

我們一定要NULL傳遞給信息? – kelin 2015-08-31 09:08:12

相關問題