我想在用户点击其他标签后立即删除徽章.我想做:
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
UITabBarItem *tbi = (UITabBarItem *)self.tabController.selectedViewController.tabBarItem;
tbi.badgeValue = nil;
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我有一个导航控制器.对于其中一个视图,我想隐藏底部标签栏,以便获得最大可能的屏幕空间.要做到这一点,我有:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.hidesBottomBarWhenPushed = YES; // To hide the tab bar
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
但是对于我推动堆栈的下一个视图,我希望标签栏重新出现.有没有办法做到这一点?
我正在用TabBar制作一个应用程序.但是TabBarController不是RootViewController.在标签栏中有4个标签.其中一个选项卡是历史记录,它与显示历史记录的表格视图相关联.我想每次单击时刷新该视图,以便我可以获得更新的tableview.我怎样才能做到这一点?提前致谢.
我想知道如何实现一个动画,当向下拖动时隐藏标签栏,如iOS 7上的Safari应用程序.任何来自您的信息将不胜感激.
我一直在应用程序中使用UITabbar.UITabbar顶部有一条上边界线.参考下图: -
我用Google搜索并尝试了以下建议的代码: -
[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
Run Code Online (Sandbox Code Playgroud)
也
[[UITabBar appearance] setShadowImage:nil];
self.navigationController.toolbar.clipsToBounds = YES;
Run Code Online (Sandbox Code Playgroud)
但他们都没有工作.有解决方案吗
我正在使用3D Touch实现主屏幕快捷方式,并且它运行良好,但是我现在拥有它的方式意味着当快捷方式将用户带到特定的视图控制器时,标签栏和导航栏将丢失.
这是我的代码:
func handleShortCutItem(shortcutItem: UIApplicationShortcutItem) -> Bool {
var handled = false
if let shortcutType = ShortcutType.init(rawValue: shortcutItem.type) {
let rootViewController = window!.rootViewController
switch shortcutType {
case .Favourites:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let rootController = storyboard.instantiateViewControllerWithIdentifier("favourites") as! FavouritesTableViewController
rootController.parkPassed = DataManager.sharedInstance.getParkByName(NSUserDefaults.standardUserDefaults().stringForKey("currentPark")!)
self.window?.rootViewController = rootController
self.window?.makeKeyAndVisible()
handled = true
}
return handled
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议我需要在代码中进行更改吗?
这是右舷布局(显示了FavouritesTableViewController):
编辑:
这是我更新的代码:
@available(iOS 9.0, *)
func handleShortCutItem(shortcutItem: UIApplicationShortcutItem) -> Bool {
var handled = false
if let shortcutType = ShortcutType.init(rawValue: shortcutItem.type) { …
Run Code Online (Sandbox Code Playgroud) 我想在UITabbarItems底部使用粗线作为选择指示器.由于应用程序必须适用于不同的手机尺寸,我无法使用图像作为选择指示器.这就是为什么我认为我必须使用Swift来做到这一点.(该行必须是页面宽度的1/3).
我尝试使用UITabBarItem.appearance()
但没有成功.
与播放歌曲时Spotify或Apple Music应用程序的功能类似,它会在UITabBar上放置一个自定义视图:
具有最大容器视图的ViewController中的UITabBarController,以及底部布局指南上方的Container View49pt顶部的自定义视图:
问题:嵌入在底部的UITabBarController中的ViewControllers中的任何内容都不会显示,因为它们隐藏在自定义布局后面.我已经尝试覆盖
size forChildContentContainer
UITabBarController,尝试更新底部布局指南,Nothing.我需要调整UITabBarController的容器视图框架的大小.
再次尝试#1,但尝试通过增加UITabBar的大小来解决隐藏在其后面的内容问题,然后在每个TabBarItem上使用ImageInset将其关闭,并在UITabBar之上添加我的自定义视图.工作得不好.有时我想隐藏自定义视图.
UITabBarController作为root,每个子节点都是一个ViewController,带有一个Container View +我的自定义视图:
但现在我有多个自定义视图实例浮动.如果我想更改其上的标签,则必须将其更改为所有视图.或隐藏等
覆盖UITabBarController的UITabBar属性并返回我的自定义UITabBar(用xib充气),它有一个UITabBar +我的自定义视图.问题:可能是所有人最令人沮丧的尝试.如果使用实例覆盖该属性class MyCustomTabBar : UITabBar {}
,则不会显示任何选项卡!是的,我设定的委托myCustomTabBar
来self
.
倾向于#3,但寻找更好的解决方案.
我以编程方式将标签栏项目添加到标签栏,但是当标签栏处于横向模式时,标签栏项目不会更改为新的横向样式,左侧是图标,右侧是文本.当标签栏处于iOS 11的横向模式时,如何更新标签栏项目的样式?
这是一些要求的代码.
UITabBar *tabBar = [UITabBar new];
NSInteger tag = 0;
NSMutableArray<UITabBarItem *> *items = [NSMutableArray new];
for(UIViewController *viewController in viewControllers)
{
NSString *title = viewController.title;
UIImage *image = [UIImage imageNamed:title];
UITabBarItem *tab = [[UITabBarItem alloc] initWithTitle:title image:image tag:tag++];
[items addObject:tab];
}
tabBar.items = items;
[self.view addSubview:tabBar];
Run Code Online (Sandbox Code Playgroud) 我想在UITabBarItem
上方展示徽章selectionIndicatorImage
.有3个截图:
浅灰色是selectionIndicatorImage
.是的,徽章看起来不错.当我在内部触摸云图标时UITabBar
变为:
这是错的..我想在选择图像上方显示徽章.如果没有图标UITabBar
- 它看起来不错.
我该如何解决这个问题?提前致谢.
我在故事板中添加了图标.对于徽章,我已经制作了代码:
UITabBarItem *cartTabBarItem = (UITabBarItem *)[self.tabBarController.tabBar.items objectAtIndex:3];
if ([[DataSourceWrapper getInstance] getFullCost] == 0)
cartTabBarItem.badgeValue = nil;
else
cartTabBarItem.badgeValue = [NSString stringWithFormat:@"%.0f ???", [[DataSourceWrapper getInstance] getFullCost]];
Run Code Online (Sandbox Code Playgroud)
对于selectionIndicatorImage
[[UITabBar appearance] setSelectionIndicatorImage:[UIImage imageNamed:@"selected-tabbar-bg.png"]];
Run Code Online (Sandbox Code Playgroud) uitabbar ×10
ios ×6
iphone ×3
objective-c ×3
swift ×3
cocoa-touch ×2
uitabbaritem ×2
animation ×1
badge ×1
border ×1
ios11 ×1
line ×1
uitoolbar ×1