gpt4 book ai didi

ios - 仅在一个 UITabBarItem 上实现 SWRevealViewController

转载 作者:可可西里 更新时间:2023-11-01 03:18:26 24 4
gpt4 key购买 nike

我通过 Storyboard使用 UITabbarController 实现 SWRevealViewController。我只想在第一个 UITabBarItem 中显示 SWRevealViewController,在其他 UITabBarItem 中我不想打开 SWRevealViewController,这完全完成了。但问题是当出现 SWRevealViewController 时,UITabBar 的位置并没有像 viewcontroller 那样改变。

请帮帮我。

enter image description here

Storyboard结构 enter image description here

最佳答案

我通过使用 SWRevealViewController 委托(delegate)方法手动更改 UITabbar 的位置解决了这个问题。将此代码放入 MenuViewController

MenuViewController.m

- (void) viewDidLoad {
[super viewDidLoad];

UITabBarController *tbc = (UITabBarController *)[[[[UIApplication sharedApplication]delegate]window]rootViewController];
self.tabBar = tbc.tabBar;

_tabBar.frame = CGRectMake(self.revealViewController.rearViewRevealWidth, _tabBar.frame.origin.y, _tabBar.frame.size.width, _tabBar.frame.size.height);
self.revealViewController.delegate = self;
}

- (void) revealController:(SWRevealViewController *)revealController willMoveToPosition:(FrontViewPosition)position {
if (position == FrontViewPositionRight) {
_tabBar.frame = CGRectMake(self.revealViewController.rearViewRevealWidth, _tabBar.frame.origin.y, _tabBar.frame.size.width, _tabBar.frame.size.height);
}
else {
_tabBar.frame = CGRectMake(0, _tabBar.frame.origin.y, _tabBar.frame.size.width, _tabBar.frame.size.height);
}
}

- (void)revealController:(SWRevealViewController *)revealController panGestureMovedToLocation:(CGFloat)location progress:(CGFloat)progress overProgress:(CGFloat)overProgress {
_tabBar.frame = CGRectMake(self.revealViewController.rearViewRevealWidth * progress, _tabBar.frame.origin.y, _tabBar.frame.size.width, _tabBar.frame.size.height);
}

关于ios - 仅在一个 UITabBarItem 上实现 SWRevealViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34851191/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com