TabBar 按钮出现问题,TabBar 按钮变得不可点击
Posted
技术标签:
【中文标题】TabBar 按钮出现问题,TabBar 按钮变得不可点击【英文标题】:Issue with UITabBar button, TabBar button becomes un clickable 【发布时间】:2013-10-08 04:41:49 【问题描述】:我正在使用UINavigationBar
和UITabBar
创建一个视图。我在标签栏上添加了一个按钮,单击按钮时,我隐藏标签栏并在底部显示工具栏。我的代码是为当前和以前的 ios 版本编写的。我正在为 iOS7 使用此代码 self.edgesForExtendedLayout = UIRectEdgeNone;
这是我的代码:
- (void)hideTabBar
UITabBar *tabBar = self.tabBarController.tabBar;
UIView *parent = tabBar.superview; // UILayoutContainerView
UIView *content = [parent.subviews objectAtIndex:0]; // UITransitionView
UIView *window = parent.superview;enter code here
[UIView animateWithDuration:0.5
animations:^
CGRect tabFrame = tabBar.frame;
tabFrame.origin.y = CGRectGetMaxY(window.bounds);
tabBar.frame = tabFrame;
// CGRect contentFrame = content.frame;
// contentFrame.size.height -= tabFrame.size.height;
content.frame = window.bounds;
];
if ([[[UIDevice currentDevice] systemVersion] intValue] < 7.0)
CGRect frame = tbl_AllFiles.frame;
frame.size.height -=tabBar.frame.size.height;
tbl_AllFiles.frame = frame;
- (void)showTabBar
UITabBar *tabBar = self.tabBarController.tabBar;
UIView *parent = tabBar.superview; // UILayoutContainerView
UIView *content = [parent.subviews objectAtIndex:0]; // UITransitionView
UIView *window = parent.superview;
if ([[[UIDevice currentDevice] systemVersion] intValue] < 7.0)
CGRect frame = tbl_AllFiles.frame;
frame.size.height +=tabBar.frame.size.height;
tbl_AllFiles.frame = frame;
[UIView animateWithDuration:0.5
animations:^
CGRect tabFrame = tabBar.frame;
tabFrame.origin.y = CGRectGetMaxY(window.bounds) - CGRectGetHeight(tabBar.frame);
tabBar.frame = tabFrame;
CGRect contentFrame = content.frame;
contentFrame.size.height -= tabFrame.size.height;
content.frame = contentFrame;
];
- (void)loadToolBar
toolbar = [UIToolbar new];
toolbar.barStyle = UIBarStyleBlackTranslucent;
moveButton = [UIButton buttonWithType:UIButtonTypeCustom];
[moveButton setFrame:CGRectMake(10, 10, 120, 25)];
[moveButton setBackgroundColor:[UIColor redColor]];
[moveButton setTitle:@"Move" forState:UIControlStateNormal];
[moveButton addTarget:self action:@selector(moveFile_Folder:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *moveItem = [[[UIBarButtonItem alloc] initWithCustomView:moveButton] autorelease];
moveItem.style = UIBarButtonItemStyleBordered;
NSArray *items = [NSArray arrayWithObjects:moveItem, nil];
toolbar.items = items;
[toolbar sizeToFit];
CGFloat toolbarHeight = [toolbar frame].size.height;
CGRect mainViewBounds = self.view.bounds;
if ([[[UIDevice currentDevice] systemVersion] intValue] < 7.0)
[toolbar setFrame:CGRectMake(CGRectGetMinX(mainViewBounds),
CGRectGetMinY(mainViewBounds) + CGRectGetHeight(mainViewBounds) - (toolbarHeight),
CGRectGetWidth(mainViewBounds),
toolbarHeight)];
else
[toolbar setFrame:CGRectMake(CGRectGetMinX(mainViewBounds),
CGRectGetMinY(mainViewBounds) + CGRectGetHeight(mainViewBounds),
CGRectGetWidth(mainViewBounds),
toolbarHeight)];
[self.view addSubview:toolbar];
[toolbar bringSubviewToFront:self.view];
我的问题是按钮单击 hideTabBar 并调用了 loadToolBar 方法。一切正常,除了我的按钮现在在工具栏上不可点击。 请帮帮我。
【问题讨论】:
附带说明,您是否尝试过 SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0") 我正在使用它。 if ([[[UIDevice currentDevice] systemVersion] intValue] >= 7.0) self.edgesForExtendedLayout = UIRectEdgeNone; 是的,我知道为什么我向您展示了我认为做同样事情的更清洁的方法。关于您的问题,您可以通过单击按钮获得 NSLog 吗? 没有。按钮不可点击。如果我在上面设置了一些工具栏的框架,那么它是可点击的。 我们可以为您的代码提供下载链接吗? 【参考方案1】:如果您的视图控制器不是根视图控制器,我遇到了类似的问题 iOS 没有获取视图框架。
将此行添加到 viewdidload 中的视图控制器,
self.view.frame = [UIScreen mainScreen].bounds;
希望对你有帮助
【讨论】:
以上是关于TabBar 按钮出现问题,TabBar 按钮变得不可点击的主要内容,如果未能解决你的问题,请参考以下文章