[英]How can I make the navigation bar on my iPhone app look metallic?
我不知道我的客户如何模拟他们的屏幕截图,但最终得到的图像是导航栏具有两色调金属外观的图像,如下所示:
但是,当我构建该应用程序时,它最终会从我的色彩逐渐变成白色,如下所示:
问题是,客户真的很喜欢它在模型中的外观。 我能做什么?
子类UINavigationBar
。 在您的子类中,重写drawRect:
以自定义绘制所需的内容。 在您的UINavigationController
实例中,确保导航栏是您的子类的实例。
如果您正在以编程方式实例化导航控制器,则可能无法执行此操作-您可能不得不向UINavigationBar
添加类别,以覆盖所有实例的图形:
@implementation UINavigationBar (CustomDrawing)
- (void)drawRect: (CGRect)rect {
// ...
}
@end
也可以使用swizzling方法来覆盖UINavigationBar
的默认行为,但是解释方法swizzling不在此问题的范围内。
在@Jonathan的回答之后, Ray Wenderlich提供了有关创建自己的渐变的出色教程。
这是一个摘录:
void drawGlossAndGradient(CGContextRef context, CGRect rect, CGColorRef startColor,
CGColorRef endColor) {
drawLinearGradient(context, rect, startColor, endColor);
CGColorRef glossColor1 = [UIColor colorWithRed:1.0 green:1.0
blue:1.0 alpha:0.35].CGColor;
CGColorRef glossColor2 = [UIColor colorWithRed:1.0 green:1.0
blue:1.0 alpha:0.1].CGColor;
CGRect topHalf = CGRectMake(rect.origin.x, rect.origin.y,
rect.size.width, rect.size.height/2);
drawLinearGradient(context, topHalf, glossColor1, glossColor2);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.