2011-10-08 109 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 :)。 –