我想使用带有自定义标题的标准标签栏项目。我在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。还存在另一种方法吗?
由于
答案 0 :(得分:2)
您应该在viewDidLoad
中而不是在初始化中执行此操作。
答案 1 :(得分:0)
根据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可以创造更好的用户体验。 您不能使用Apple图标并使用其他标题。您可以改用自定义图标和自定义标题,或者在情节提要中选择SF符号,如下所示: