objective-c - 为 NavBar 的标题添加阴影

标签 objective-c ios

我从一位同事那里得到了一个程序,他正在使用 .xib 文件来设置他的 View 。 (作为一名硬核编码器,我自己从未使用过 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",

有什么想法吗?

最佳答案

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

UITextAttributeTextShadowColor 
UITextAttributeTextShadowOffset

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


如果您真的想要自定义阴影,您可以创建自己的 UILabel 并像第一个示例中那样设置阴影。然后将该标签设置为 View Controller UINavigationItemtitleView

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

关于objective-c - 为 NavBar 的标题添加阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10970589/

相关文章:

iphone - 优化此核心数据请求

ios - 比较带有特殊字符ios的阿拉伯字符串

objective-c - iOS:简单的 NSMutableArray 调用

objective-c - NSJSONSerialization.JSONObjectWithData 浮点转换/舍入错误?

android - 是否可以使用 flutter 和 Dart 制作 Vpn 应用程序

ios - 检测从推送通知打开的应用程序(后台获取)

IOS 远程静默通知在电话/网络波动期间不起作用

objective-c - 变量是静态的,无需声明,所以,OSX iOS Apple 风格的 C 或 Obj-C?

ios - 如何从 Indexpath 获取自定义单元格对象?

ios - 带有客户端证书的 SecTrustSetAnchorCertificates