ios - 绘制背景颜色和边框和背景 PNG

标签 ios objective-c performance user-interface uibutton

我想为我的 iPad 应用程序的大多数按钮使用特定的 RGB 十六进制颜色。

我所做的是: 我在我的项目中实现了 UIButton 子类,它模拟按钮所需的背景颜色、文本颜色和边框 - 然后我在我需要 UIButton 的项目中的任何地方使用它。

我的 UI/UX 设计师不提供 PNG,相反他坚持要我用十六进制代码模仿相同颜色的网站按钮。我更喜欢背景 PNG。

现在,这个问题与您可能想知道的编程的关系是,我正在访问子类中的 .layer.borderWidth.layer.borderColor 属性,最终得到无处不在。

那么,这种代替使用背景 PNG 的方法对应用程序有什么好处吗?

注意 (如果相关):所有按钮的大小都相同。

最佳答案

你可以自己用颜色制作 UIImage 并设置你的按钮图像:

+ (UIImage *)imageFromColor:(UIColor *)color {
    CGRect rect = CGRectMake(0, 0, 1, 1);
    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetFillColorWithColor(context, [color CGColor]);
    CGContextFillRect(context, rect);
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}

你还需要convert HEX RGB color codes to UIColor

关于ios - 绘制背景颜色和边框和背景 PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28623154/

相关文章:

iphone - 为 NSOperationQueue 设置并发操作只会导致该数量的操作

ios 撤销推送通知证书

objective-c - TableView 未正确重新加载

ios - 某些按钮无法通过 hitTest

objective-c - 不总是在 block 中捕获 self (保留周期)?

unpack 结合 Perl 中的 join 的性能

linux - QPainter::drawText 在 Linux 上的糟糕表现

objective-c - 如何在两个 NSString * 之间插入 NSString *

ios - Crashlytics- 缺少 dYSM 错误

SQL Server Express 性能问题