UIImage的一个只读属性:renderingMode,对应的还有一个方法:imageWithRenderingMode,它使用UIImageRenderingMode枚举值来设置图片的renderingMode属性。该枚举中包含下列值:
- UIImageRenderingModeAutomatic // 根据图片的使用环境和所处的绘图上下文自动调整渲染模式。
-
UIImageRenderingModeAlwaysOriginal // 始终绘制图片原始状态,不使用Tint Color。(这个枚举值是声明这张图片要按照原来的样子显示,不需要渲染成其他颜色 )因为苹果系统本身带有默认的渲染颜色
- UIImageRenderingModeAlwaysTemplate // 始终根据Tint Color绘制图片,忽略图片的颜色信息。
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];