iOS-画像を青にレンダリングするための修正方法
1475 ワード
以前の開発の過程で、buttonに1枚の画像を設定して、画像は灰色で、美工が作った図は間違いなく問題がなくて、buttonに画像を設定する方法も簡単で、1つのコードは完成して、しかし運行する時発見して、画像は理由もなく青になりました.後で自分で研究して発見して、いくつかのコントロールにピクチャーを設定する時デフォルトでピクチャーを青色にレンダリングして、問題の所在を見つけて、良い結末、解決方法は以下の通りです:
-(UIImage*)imageWithRenderingMode:(UIImageRenderingMode)renderingModeこの方法は、画像のレンダリングモードを設定するためのものです.
ちなみに、もしあなたの美工がbuttonのサイズをあげていないならば、ただbuttonの画像をあげただけで、あなたは直接画像のサイズを取って、それからbuttonを画像と同じ大きさのサイズに設定することができます
UIButton *loginBtn = [[UIButton alloc]initWithFrame:CGRectMake(100, 100, 100, 50)];
loginBtn.showsTouchWhenHighlighted = YES;
UIImage *loginImg = [UIImage imageNamed:@"login"];
loginImg = [loginImg imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
[loginBtn setImage:loginImg forState:UIControlStateNormal];
[self.view addSubview:loginBtn];
-(UIImage*)imageWithRenderingMode:(UIImageRenderingMode)renderingModeこの方法は、画像のレンダリングモードを設定するためのものです.
UIImageRenderingModeAlwaysOriginal ,
OK! 問題は結末をつけた.この小さな問題をここに記録して、今度出会ってまたどのように解決するかを忘れないようにします!ちなみに、もしあなたの美工がbuttonのサイズをあげていないならば、ただbuttonの画像をあげただけで、あなたは直接画像のサイズを取って、それからbuttonを画像と同じ大きさのサイズに設定することができます
UIButton *loginBtn = [UIButton buttonWithType:UIButtonTypeCustom];
loginBtn.showsTouchWhenHighlighted = YES;
UIImage *loginImg = [UIImage imageNamed:@"login"];
loginImg = [loginImg imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
[loginBtn setImage:loginImg forState:UIControlStateNormal];
CGSize size = loginBtn.currentImage.size;// button image
loginBtn.frame = CGRectMake(100, 100, size.width, size.height);
[self.view addSubview:loginBtn];