繁体   English   中英

如何使iPhone应用程序上的导航栏看起来像金属的?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM