首页 > 代码库 > iOS-对于把图片渲染成蓝色的修改方法
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];
iOS-对于把图片渲染成蓝色的修改方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。