如何使用 UITabbarsystemitem 设置标题
Posted
技术标签:
【中文标题】如何使用 UITabbarsystemitem 设置标题【英文标题】:How to set title with UITabbarsystemitem 【发布时间】:2013-04-25 08:58:27 【问题描述】:我只是想知道如何使用UITabBarSystemItem
设置标签栏项目的标题?
我做了什么:
self.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFeatured tag:0];
所以要默认更改标题而不是“精选”(因为UITabBarSystemItemFeatured
对象),我写道:
self.tabBarItem.title = @"Actu";
所以在我看来,我应该将“Actu”作为标题而不是“Featured”。
但它什么也没改变,标题一直是“精选”(默认标题)。
我也试过了:
[[self.tabBarController.tabBar.items objectAtIndex:0] setTitle:NSLocalizedString(@"Actu", @"Actu")];
(因为这个 tabbaritem 在索引 0 处),但没有任何变化。
或者使用UITabBarSystemItem
对象可能无法进行这样的修改?
我希望这已经足够解释了:/
PS : 对不起我的英语和其他任何错误,第一次发帖……:/
【问题讨论】:
【参考方案1】:当 UITabBarItem
使用 initWithTabBarSystemItem:tag:
初始化时,您以后无法更改图像或标题属性。
来源:ios Development Documentation
【讨论】:
好的,所以如果我想设置标题,我必须导入自己的图片。感谢您的快速答复!【参考方案2】:您可以使用 KVC。
[self.tabBarItem.setValue("YourTitle", forKey: "internalTitle")];
【讨论】:
【参考方案3】:你已经写过了:
...使用
UITabBarSystemItem
对象无法进行这样的修改...
那些将title
和image
属性设置为nil
,因此它们将这些值存储在一些内部私有属性中。
文档也说:
-initWithTabBarSystemItem:tag:
返回项目的标题和图像属性以后无法更改。
【讨论】:
【参考方案4】:其实是可以的,你可以利用_setInternalTitle:
from private API.的方法
[self.tabBarItem setValue:@"Categories" forKey:@"internalTitle"];
注意事项:仅用于测试版本。
【讨论】:
太棒了,这行得通。这对于在快速原型制作时使用系统图标非常方便。这是 Swift 中的代码(适用于 Xcode 10 iOS 12):navigationController.tabBarItem.setValue("Hello", forKey: "internalTitle")【参考方案5】:我意识到这是旧的,但也许这会帮助其他想要这样做的人。如上所示,从系统项创建一个 tabBarItem。然后创建另一个 tabBarItem,就好像您有一个自定义图标并从系统项中复制图像一样。
UITabBarItem* systemItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFeatured tag:0];
UITabBarItem* theItem = [[UITabBarItem alloc] initWithTitle:theNameIWantToUse image:systemItem.image tag:0];
【讨论】:
是的,我的答案不正确,我后来才发现。 systemItem.title 也是 nil。以上是关于如何使用 UITabbarsystemitem 设置标题的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Debian 上使用 useradd 将主目录设为根目录
如何设断点????-----使用WinDbg调试SQL Server查询