swif我tabbar里有3个控制器我想隐藏一个怎么办
1个回答
2017-04-21
展开全部
swif我tabbar里有3个控制器我想隐藏一个怎么办
修改 TabBar 的 subview 的 frame 就可以了。其中,TabBar 的subview 共有两个,一个叫UITabBar,另一个叫UITranstionview。将UITabBar的 y 向下移49个单位,把UITranstionview 的 hight 加长 49 个单位。但是有时候这样隐藏tabbar后,原来的viewcontroller上的view就会被拉长。解决方法是修改viewcontroller上的view 的autosizing。以下是具体代码,另加上了动画效果: for (UIView *v in [self.tabBarController.view subviews]) { if ([v isKindOfClass:[UITabBar class]]) { [UIView animateWithDuration:kDuration delay:0.0f options:UIViewAnimationOptionCurveEaseOut animations:^(){ CGRect frame = v.frame; frame.origin.y += 49.0f; v.frame = frame; } completion:^(BOOL complete) { isAnimating = NO; }]; } else { isAnimating = YES; [UIView animateWithDuration:kDuration delay:0.0f options:UIViewAnimationOptionCurveEaseOut animations:^(){ CGRect frame = v.frame; frame.size.height += 49.0f; v.frame = frame; } completion:nil]; } }
修改 TabBar 的 subview 的 frame 就可以了。其中,TabBar 的subview 共有两个,一个叫UITabBar,另一个叫UITranstionview。将UITabBar的 y 向下移49个单位,把UITranstionview 的 hight 加长 49 个单位。但是有时候这样隐藏tabbar后,原来的viewcontroller上的view就会被拉长。解决方法是修改viewcontroller上的view 的autosizing。以下是具体代码,另加上了动画效果: for (UIView *v in [self.tabBarController.view subviews]) { if ([v isKindOfClass:[UITabBar class]]) { [UIView animateWithDuration:kDuration delay:0.0f options:UIViewAnimationOptionCurveEaseOut animations:^(){ CGRect frame = v.frame; frame.origin.y += 49.0f; v.frame = frame; } completion:^(BOOL complete) { isAnimating = NO; }]; } else { isAnimating = YES; [UIView animateWithDuration:kDuration delay:0.0f options:UIViewAnimationOptionCurveEaseOut animations:^(){ CGRect frame = v.frame; frame.size.height += 49.0f; v.frame = frame; } completion:nil]; } }
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
微测检测5.10
2023-05-10 广告
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇...
点击进入详情页
本回答由微测检测5.10提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询