如何更改 UITabBarItem 的默认标题

发布于 2024-12-10 16:33:16 字数 706 浏览 2 评论 0原文

我想使用带有自定义标题的标准选项卡栏项目。我在直接创建 TabBarItem 之后更改标题 self.tabBarItem.title = @"Liked"。例如“收藏夹”- UITabBarSystemItemFavorites:

 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        self.title = NSLocalizedString(@"Liked", @"Liked");
        self.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:0];
        self.tabBarItem.title = @"Liked";
    }
    return self;
}

我可以这样做吗?如果是的话我哪里出错了?

UPD:viewDidLoad()中更改标签栏项目标题适用于iOS4,但不适用于iOS5。是否存在另一种方法?

谢谢

I want to use standard tab bar item with custom title. I change title after TabBarItem creating directly self.tabBarItem.title = @"Liked". For example "Favorites" - UITabBarSystemItemFavorites:

 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        self.title = NSLocalizedString(@"Liked", @"Liked");
        self.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:0];
        self.tabBarItem.title = @"Liked";
    }
    return self;
}

Can I do this? If yes, where I made mistake?

UPD: Changing tab bar item title in the viewDidLoad() works on iOS4 but doesn't work on iOS5. Does exist another approach?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我的鱼塘能养鲲 2024-12-17 16:33:16

您应该在 viewDidLoad 中而不是 init 中执行此操作。

You should do that in the viewDidLoad and not in the init.

ぺ禁宫浮华殁 2024-12-17 16:33:16

根据 Swift5.1 和 Xcode,系统选项卡栏项目的标题和图像无法更改。它们在 obj c 中定义为枚举,如下所示。这是列表:

typedef enum UITabBarSystemItem : NSInteger {
case more, favorites, featured, topRated, recents, contacts, history, bookmarks, search, downloads ,mostRecent, mostViewed
} UITabBarSystemItem;

这是有原因的。有些图标在整个 iOS 生态系统中都可以立即识别,并且对每个人来说都意味着相同的事情,因此不可能以不同的方式使用它们。
苹果通过这种方式创造了更好的用户体验。
您不能使用 Apple 图标并使用不同的标题。您可以使用自定义图标和自定义标题,或者在故事板中选择一个 SF 符号,如下所示:

在此处输入图像描述

As per Swift5.1 and Xcode the title and image of the system tab bar items cannot be changed. They are defined as enum in obj c as follow. This is the list:

typedef enum UITabBarSystemItem : NSInteger {
case more, favorites, featured, topRated, recents, contacts, history, bookmarks, search, downloads ,mostRecent, mostViewed
} UITabBarSystemItem;

This has a reason. Some icons are immediately recognisable across the whole iOS ecosystem and mean the same thing to everyone, therefore it is not possible to use them differently.
In this way Apple creates a better user experience.
You cannot use the Apple icon and use a different title. You could use a custom icon and custom title instead or in the Storyboards select an SF Symbol like this:

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文