iOS-對於把圖片渲染成藍色的修改方法

來源:互聯網
上載者:User

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];


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.