【发布时间】:2017-03-09 07:08:47
【问题描述】:
我在UITabBarViewController中添加了自定义中心按钮,代码如下...
self.centerButton = [UIButton buttonWithType:UIButtonTypeCustom];
self.centerButton.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin;
self.centerButton.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height);
[self.centerButton setBackgroundImage:buttonImage forState:UIControlStateNormal];
[self.centerButton setBackgroundImage:highlightImage forState:UIControlStateHighlighted];
CGFloat heightDifference = buttonImage.size.height - self.tabBar.frame.size.height;
if (heightDifference < 0) {
self.centerButton.center = self.tabBar.center;
} else {
CGPoint center = self.tabBar.center;
center.y = center.y - heightDifference/2.0;
self.centerButton.center = center;
}
[self.centerButton addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:self.centerButton];
请查看随附的屏幕截图以供参考,
现在,当我在移动到其他视图控制器时尝试隐藏它时,只有标签栏被隐藏,而不是带有以下代码的中心自定义按钮,
[self.tabBarController.tabBar setHidden:YES];
也试过这样隐藏中心自定义按钮,
WBTabBarController *objWBTab = [self.storyboard instantiateViewControllerWithIdentifier:ID_CNTRL_TABBAR];
[objWBTab setTabBarHidden:YES];
SetTabBarHidden 已在 WBTabBarController.m 中定义如下,
- (void)setTabBarHidden:(BOOL)tabBarHidden
{
self.centerButton.hidden = tabBarHidden;
self.tabBar.hidden = tabBarHidden;
}
还是不行,谁能帮帮我?
【问题讨论】:
-
为什么不直接将
UIButton添加为标签栏的子视图而不是self.view? -
由于自定义按钮的高度较大,所以我必须在 self.view 中添加它,我不能在标签栏中添加它
-
那么将剪辑的边界设置为标签栏的假不是做同样的事情吗?就像按钮可以在标签栏的边界之外可见
-
哦,是的。你是绝对正确的。我试过这个。但是通过在标签栏中添加它..我的按钮不再显示。如果你能帮我多一点就好了..
-
好吧好吧..我明白了。框架正在创建问题。因此,之前它已添加到 self.view 中,现在它位于 tabar 中。所以我需要稍微修改一下帧逻辑。非常感谢你的帮助!你节省了我的时间。谢谢
标签: ios objective-c uitabbarcontroller uitabbar