0

我对 iOS 开发很陌生,这是我第一次在这里设计样式。

在任何人说什么之前我知道下面的代码会改变颜色

self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:0.169 green:0.373 blue:0.192 alpha:0.9];

我想要做的是我想改变导航栏中的灯光。当前是从上到下渐变的默认设置。但我想做的是改变它,让它像图片一样发光,只在中间。

我不知道我最好使用图片还是使用 xcode 绘制灯光是最好的选择。主要是由于内存消耗和效率。我的猜测是画光是最好的选择,我只需要知道怎么做。

我尝试搜索此内容,但可能是我缺乏 iOS 开发知识使我无法找到有关如何执行此操作的正确教程或代码示例。

任何帮助表示赞赏。

在此处输入图像描述

这是光照分布与默认 UINavBar 不同的另一个示例。我真的很想知道他们是使用图片还是用 xCode 绘制的

在此处输入图像描述

4

6 回答 6

0

最好为栏使用自定义图像,而不是“绘制”发光。

于 2013-05-08T09:51:36.537 回答
0

您可以使用自定义图像,然后尝试以下操作:

[[UINavigationBar appearance] setBackgroundImage:yourImage forBarMetrics:UIBarMetricsDefault]

在您的应用程序委托中添加此代码,它作为全局设置工作,所有导航栏都将被设置

于 2013-05-08T09:54:34.130 回答
0
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{     
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.imgBackgroundView = [[UIImageView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
 [self.window addSubview:self.imgBackgroundView];
    [self addCustomNavigationController];
[self addCustomNavigationController];
}

- (void)addCustomNavigationController
{
    self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
    self.navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
    if ([[UINavigationBar class] respondsToSelector:@selector(appearance)])
    {
        [[UINavigationBar appearance] setBackgroundImage:[self getImageFromResource:@"topbar"] forBarMetrics:UIBarMetricsDefault];
        [[UINavigationBar appearance] setTitleTextAttributes:
         [NSDictionary dictionaryWithObjectsAndKeys:
          [UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:1.0],
          UITextAttributeTextColor,
          [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8],
          UITextAttributeTextShadowColor,
          [NSValue valueWithUIOffset:UIOffsetMake(0, 0)],
          UITextAttributeTextShadowOffset,
          [UIFont fontWithName:@"HelveticaNeue-Bold" size:18.0],
          UITextAttributeFont,
          nil]];
    }
    [[NSUserDefaults standardUserDefaults] setObject:@"Login" forKey:@"randomView"];
}

- (UIImage*)getImageFromResource:(NSString*)imageName
{
    return [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:imageName ofType:@"png"]];
}
于 2013-05-08T09:58:42.897 回答
0

你好,请使用 iOS5 和 iOS6 的外观 [[UIBarButtonItem 外观] setTintColor:[UIColor colorWithRed:0.08 green:0.72 blue:0.78 alpha:1]];

于 2013-05-08T10:02:04.890 回答
0

一种替代解决方案是在 NavigationBar 上添加 UIButton。

从属性检查器或使用设置它的 Shows touch on highlight 属性

[buttonGlow setShowsTouchWhenHighlighted:YES];

并在viewDidLoad

[buttonGlow setHighlighted:YES];
于 2013-05-08T10:04:37.757 回答
0

我需要的是PaintCode,因为它是使用与普通图像一样具有内存效率的代码绘制和图像的最佳方式,但鉴于在代码中它允许对图像进行高度定制。有关绘图图像中的内存的帖子,请参见此处

于 2013-05-19T22:39:45.407 回答