5

我从一位同事那里得到了一个程序,他正在使用 .xib 文件来设置他的视图。(作为一名核心编码员,我自己从未使用过 IB...)所以他正在设置他的 ViewControler 并且他有一个 NavBar(我在 .xib 文件中找不到!)。

我想为标题添加阴影。

如果我正在制作 NavBar,则相关代码将类似于:

textViewTitle.layer.shadowOpacity = 2.0;
textViewTitle.layer.shadowRadius = 3.0;
textViewTitle.layer.shadowOffset = CGSizeMake(2.0, 3.0);

这很好用。挖掘我发现现在我需要使用这个:

NSDictionary *navbarTtlAts = [NSDictionary dictionaryWithObjectsAndKeys:
                             [UIColor whiteColor], UITextAttributeTextColor, 
                             [UIColor blackColor], UITextAttributeTextShadowColor,
                             [NSValue valueWithUIOffset:UIOffsetMake(2.0, 3.0)], UITextAttributeTextShadowOffset,
                             nil];
[self.navigationController.navigationBar setTitleTextAttributes:navbarTtlAts];

虽然这可行,但我找不到如何添加 shadowOpacity 和 shadowRadius 的东西。

我发现我可以在 NSDictionary 中添加以下内容,但它不起作用......

                           [NSNumber numberWithFloat: 2.0], @"shadowOpacity",
                           [NSNumber numberWithFloat: 3.0], @"shadowRadius",

有任何想法吗?

4

1 回答 1

3

您应该将这些键用于阴影颜色偏移量

UITextAttributeTextShadowColor 
UITextAttributeTextShadowOffset

无法将阴影半径指定为文本属性。


如果您真的想要自定义阴影,您可以创建自己UILabel的阴影并像第一个示例中那样设置阴影。然后您将该标签设置titleView为您的视图控制器的标签UINavigationItem

不过,您必须自己更新文本(导航控制器将不再自动为您更新)。

于 2012-07-19T20:43:38.287 回答