2011-10-08 70 views
0

我想在保存之前在UIImage的顶部添加图像横幅。我已经创建了这种类别的方法来做到这一点。我已检查并重新检查banner.png存在和gradient显示正常。在UIImage上添加图像

我在做什么错?

在此先感谢!

- (UIImage *)addBanner { 
    UIGraphicsBeginImageContext(CGSizeMake(self.size.width, self.size.height+50)); 
    [self drawAtPoint:CGPointMake(0, 50)]; 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGRect bannerRect = CGRectMake(0, 0, self.size.width, 50); 
    CGColorRef start = RGB(71, 174, 255).CGColor; 
    CGColorRef end = RGB(0, 80, 255).CGColor; 
    drawLinearGradient(context, bannerRect, start, end); 
    UIImage *bannerImage = [UIImage imageWithContentsOfFile:@"banner.png"]; 
    [bannerImage drawAtPoint:CGPointMake(0, 0)]; 
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return newImage; 
} 
+3

当你运行这段代码时会发生什么? –

+0

我得到我的图像与顶部的横幅渐变,但我的bannerImage没有显示。 – enbr

+0

事实证明,bannerImage是零,所以造成我的问题。尽管它在应用程序包中,但我绝对乐观。 – enbr

回答

1

显然[UIImage imageWithContentsOfFile:]需要一个完整的路径。将其更改为[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"banner.png"]]工作。

+1

或者,根据你将如何使用图像,'[UIImage imageNamed:@“banner”]''。有关详细信息,请参阅[文档](http://developer.apple.com/library/ios/documentation/UIKit/Reference/UIImage_Class/Reference/Reference.html#//apple_ref/occ/clm/UIImage/imageNamed :)。 –