我读了一堆相关的问题,我尝试了他们所说的,没有什么可行的.不知道为什么.所以,我有3个不同UIStoryboards.第一个是处理登录/注册的Auth Storyboard,并且有第二个Storyboard - Tab栏故事板的故事板参考.这个故事板包含5个其他故事板引用,可以加载它的独立视图控制器.
我的问题是,一旦用户登录,图标就不会显示.我设置了第一个视图控制器的自定义颜色,UITabViewController以确保它加载.确实如此.
我试图将所有图像/图标设置为"原始",但没有用.我设置了一个系统映像,只是为了看是否是问题,它们没有显示出来.另外值得一提的是,图标显示在故事板中,但是当它被编译时,它们在模拟器中无处可见.
我究竟做错了什么?
PS:我已经改变了标签栏的色调,只是为了测试它,它的工作原理.所以,问题不在于......
我想知道当 以编程方式完成更改时,我们如何检测选定的TabBar项目或索引何时更改?
self.tabBarController.selectedIndex = 1;
Run Code Online (Sandbox Code Playgroud)
这两个委托函数仅在用户选择tabBar项时检测更改.当以编程方式完成对selectedIndex的更改时,它不会触发.
func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController) {
println("tabBarController didSelectViewController")
}
override func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem!) {
println("tabBar didSelectItem")
}
Run Code Online (Sandbox Code Playgroud) 适用于iPhone的Skype应用程序使用动画TabBar图标.例如,在登录期间,最右侧的选项卡图标显示循环箭头.调用"呼叫"选项卡图标时会轻轻闪烁,这显然是通过动画完成的.
我想知道如何动画标签栏项目的图标.
在我的特殊情况下,当用户按下"收藏夹"按钮时,它会跳转到"收藏夹"标签栏项目.我已经实现了跳跃动画,但是我希望相应的标签栏图标在动画结束时闪烁以给它带来完整感.
关于我应该注意的方向的任何建议?
提前致谢.
在我的iPhone应用程序中,我有一个公共标签栏,其中有三个标签,按下按钮后可以从多个视图中显示.我遵循的方法是Tweetie应用程序的工作流程,在Robert Conn的帖子中描述.
注意,主控制器是导航控制器; 标签栏放置在导航堆栈的视图控制器的NIB文件中,并且在委托的didSelectItem方法中处理在标签之间切换的效果.
@interface GameTabBarController : UIViewController<UITabBarDelegate> {
UITabBar *tabBar;
UITabBarItem *lastGameTabBarItem;
UITabBarItem *previousGamesTabBarItem;
UITabBarItem *myBetsTabBarItem;
NSArray *viewControllers;
UIViewController *currentViewController;
}
@implementation GameTabBarController
...
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
UIViewController *viewController = nil;
// Get the view controller linked to the tab bar item pressed
...
// Switch to the view
[self.currentViewController.view removeFromSuperview];
[self.view addSubview:viewController.view];
self.currentViewController = viewController;
}
...
@end
Run Code Online (Sandbox Code Playgroud)
由于必须根据应用程序来自的视图控制器来自定义选项卡栏的视图,因此我将其GameTabBarController作为具有该选项卡栏的NIB文件的父类.然后,我创建了几个子类:
@interface FirstGameTabBarController : GameTabBarController {
...
}
@interface SecondGameTabBarController : …Run Code Online (Sandbox Code Playgroud) 有人可以告诉我,如何将UITabBarItem的标题例如2px移到顶部?
苹果说:
根据设备和方向,系统会显示常规或紧凑的标签栏。您的应用应包含两种尺寸的自定义标签栏图标。
不幸的是,他们未能指定您何时获得哪个。
此外,我可能会包含两种尺寸的图像,但系统会自动在它们之间切换(如何?)还是我必须自己做?
我正在为我的UITabBar制作图像.我制作的尺寸为60x60,因为这就是视网膜屏幕的用途.但是,当我使用该尺寸时,它在条形图中显示得太大,因此您只能看到部分图像.当我将其降低到30x30时,它可以工作,但是这个尺寸应该用于非视网膜显示器.当我使用60x60时,为什么它不能正常显示?
我在谷歌搜索这么多,但我找不到一个直接和巩固的答案.
我想自定义我的UITabBarController:
UITabBar本身就是黑色的UITabBar变黑我猜我需要使用UIAppearanceAPI,实际上我可以UITbarBar使用以下方式将黑色变为:[[UITabBar appearance] setBarTintColor:[UIColor blackColor]];.
然而,文字项目的颜色似乎没有做我想要的,在谷歌搜索后,以下解决方案对我有意义,但它只将非突出显示状态更改为白色,突出显示保持白色...
NSDictionary *titleAttributes = @{NSForegroundColorAttributeName : [UIColor whiteColor]};
[[UITabBarItem appearance] setTitleTextAttributes:titleAttributes forState:UIControlStateNormal];
UIColor *titleHighlightedColor = [UIColor redColor];
NSDictionary *highlightedTitleAttributes = @{NSForegroundColorAttributeName : titleHighlightedColor};
[[UITabBarItem appearance] setTitleTextAttributes:highlightedTitleAttributes forState:UIControlStateHighlighted];
Run Code Online (Sandbox Code Playgroud)
关于五彩图标,到目前为止的方法是简单地设置故事板中的图标,如下所示:

但这并不是我想要的,它只在未选择项目时以灰色显示整个图标.选择项目后,图标将完全消失.
这是原始图标:

这是未选择项目时的外观:

在这里,它是在选定的陈述,如上所述,图标完全消失:

所以,我的问题是我能够达到上述要求的准确程度.我目前缺少什么?我在代码中做的所有事情都比在Storyboard中做得更好吗?
注意:我的目标是iOS版本大于7.0,因此如果iOS 7和iOS 8之间的行为不同,请包含任何特定于版本的信息.
我将UITabBarController添加到窗口,并将UITabBarController的viewControllers属性设置为ViewControllers数组.如果我在viewController中设置徽章值,那么它的工作正常.self.tabBarItem.badgeValue = @"3";
但是,如果我将UITabBarController的viewControllers属性设置为具有视图控制器作为rootviewcontroller的导航控制器数组,那么它不设置徽章值.
有什么建议 ??
谢谢
我正在使用一个名为SwiftyWalkthrough的外部库,它允许我在屏幕上仅显示某些视图,以通过我的应用程序的UI引导新用户.我想要向用户公开的第一个项目是UITabBarItem.我需要找到与该特定UITabBarItem相关联的UIView.我知道该项目的索引,我给它一个标签.但我没有找到方法帮助我找到这个观点.当然,我只想使用公共接口来实现这一目标.