- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
一段时间以来,我一直在寻找一种以编程方式绘制图像的方法。我找到了一个相当不错的解决方案:
UIGraphicsBeginImageContextWithOptions(CGSizeMake(36, 36), NO, 0.0);
UIImage *blank = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
但这样做的缺点是,在同一上下文中,我无法创建两个或多个不同颜色的图像,因此我可以将它们用作按钮的背景(例如,对于所有三种状态)。是的,我知道我可以将一些资源 PNG 设置为 UIButton
的背景,但如果我愿意,我不会问这个问题。
我真的很想学习如何以编程方式创建图像并使用它们,以不同的颜色作为背景,在相同的上下文中,或者可能在另一个上下文中创建但移植到我需要它们的地方。
编辑:为了进一步澄清,采用这段代码:
UIButton *button = [UIButton alloc] init];
button.frame = CGRectMake(0.0, 0.0, 200, 30);
//this is pefect
button.backgroundColor = [UIColor whiteColor];
//but, what if I want to have the UIControlStateNormal / UIControlStateHighlighted / UIControlStateDisabled with different background colors ?
[button setBackgroundColor: [UIColor blackColor] forState: ?] // dont't think so, right ?
在上面的例子中,如果我想让按钮在按下或禁用时看起来不同,当然,背景,因为标题和标题颜色可以很容易地改变。
最佳答案
您可以在 UIImage
上创建一个类别以返回具有特定大小并填充颜色的新 UIImage
实例:
+ (UIImage *)imageOfSize:(CGSize)size filledWithColor:(UIColor *)color {
UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);
CGContextRef context = UIGraphicsGetCurrentContext();
CGRect rect = (CGRect){CGPointZero, size};
CGContextFillRect(context, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
关于ios - 使用纯色创建多个 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20429086/
我正在尝试更改iOS背景颜色,但是我认为透明度(alpha:1)似乎在起作用并改变了预期的颜色。 In **AppDelegate.m** rootView.backgroundColor = [
https://www.dropbox.com/s/4zkhtdv4yaqhpxy/Screenshot%20from%202015-01-28%2010%3A42%3A02%201.png?dl=0
照明不工作,对象显示为纯色。颜色本身随 Material 或照明参数而变化,但没有阴影或任何纯灰色。 部分代码如下: glPolygonMode(GL_FRONT_AND_BACK, GL_FILL)
ppt幻灯片生成时,系统默认是无色背景填充,幻灯片设计需要手动设置背景效果,可设置颜色填充或者图片背景填充。本文将对此介绍具体实现方法。 jar文件导入方法(参考): 步骤1:在java程序中可
我是一名优秀的程序员,十分优秀!