2014-03-27 58 views
4

我的UIButton的一部分是UIImage,IOS 7將其顏色從黑色更改爲藍色。我嘗試了這裏提供的解決方案:將按鈕類型更改爲UIButtonTypeSystem,但這並沒有幫助,圖像仍然是藍色。這裏是我使用的通用代碼:IOS 7按鈕圖像顏色

UIButton *iWantPlan = [UIButton buttonWithType:UIButtonTypeSystem]; 
iWantPlan.frame = CGRectMake(self.view.bounds.size.width/2-bgImageWidth/2, planBg.frame.origin.y + planBg.frame.size.height + 20, bgImageWidth, bgImageWidth/4+5); 
iWantPlan.titleLabel.font = [UIFont systemFontOfSize:20]; 
[iWantPlan addTarget:self action:@selector(goToPersonalDetails) forControlEvents:UIControlEventTouchDown]; 
[self.view addSubview:iWantPlan]; 

iWantPlan.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight; 
iWantPlan.imageView.frame = CGRectMake(bgImageWidth - 20, 10, 25, 25); 
UIImage *viImage = [UIImage imageNamed:@"Icon_V.png"]; 
UIImage *viImageTap = [UIImage imageNamed:@"Icon_V_Tap.png"]; 
[iWantPlan setImage:viImage forState:UIControlStateNormal]; 
[iWantPlan setImage:viImageTap forState:UIControlStateSelected]; 

有沒有解決方案? (和公正順便說一句,這是很無奈:)

回答

10

有了:imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal確保你沒有藍色的背景:

UIImage *viImage = [[UIImage imageNamed:@"Icon_V.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
UIImage *viImageTap = [[UIImage imageNamed:@"Icon_V_Tap.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 

Apple Documentation UIImageRenderingMode
總是吸引原始圖像,而無需治療它作爲一個模板:UIImageRenderingModeAlwaysOriginal

此外,它可以幫助你:

UIButton *iWantPlan = [UIButton buttonWithType:UIButtonTypeCustom]; 
... 
[iWantPlan setImage:viImageTap forState:UIControlStateHighlighted]; 
3

只需將您的按鈕類型UIButtonTypeSystem更改爲UIButtonTypeCustom

+0

此工作,簡單的解決方案.. – TharakaNirmana