iOS-對於把圖片渲染成藍色的修改方法
在之前開發的過程中,遇到過這樣一個小問題:給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];