我有一个viewController
A主UITabBar
。我的问题是,当我滚动到最后一个单元格,然后在viewController
B中点击单元格UITableView
后,当我回到viewController
A时,我的最后一个单元格是在底部切断,我可以滚动显示此单元格的所有内容。但默认情况下,UITableView
默认位于底部,与上次保持不变。
当我启动viewController
B时,我会在VCB" UITabBar
"中使用此代码隐藏我的viewWillAppear
:
- (void)hideTabBar {
UITabBar *tabBar = self.tabBarController.tabBar;
UIView *parent = tabBar.superview;
UIView *content = [parent.subviews objectAtIndex:0];
UIView *window = parent.superview;
[UIView animateWithDuration:0.3
animations:^{
CGRect tabFrame = tabBar.frame;
tabFrame.origin.y = CGRectGetMaxY(window.bounds);
tabBar.frame = tabFrame;
content.frame = window.bounds;
}];
}
当我回到我的viewController
A时,我在VCB" UITabBar
":
viewWillDisappear
代码
- (void)showTabBar {
UITabBar *tabBar = self._tab;
UIView *parent = tabBar.superview;
UIView *content = [parent.subviews objectAtIndex:0];
UIView *window = parent.superview;
[UIView animateWithDuration:0.3
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;
}];
}
我在iOS 6中遇到同样的问题,但滚动条不允许在底部,最后一个单元格被切断。
在我的viewController
A in" viewWillAppear
"我这样做:
if ([[UIDevice currentDevice].systemVersion hasPrefix:@"7"]) {
[self._tabBarControllerArticle.tabBar setTranslucent:NO];
}
感谢您提前获得所有答案!!!
答案 0 :(得分:1)
另一种方法是将tabBar
的半透明属性设置为NO
,如下所示
// In init or viewDidLoad of tab bar controller
self.tabBar.translucent = NO;
假设您使用的是iOS7,则应调整UITableView
以上self.tabBar
答案 1 :(得分:1)
单击发生问题的tableViewController,转到Attributes Inspector,向下滚动并取消选中" Under Bottom Bars"框。
这个question的选定答案帮助了我。
答案 2 :(得分:0)
您错过了将帧分配回您的视图。请参阅更新的代码。
- (void)showTabBar {
UITabBar *tabBar = self._tab;
UIView *parent = tabBar.superview;
UIView *content = [parent.subviews objectAtIndex:0];
UIView *window = parent.superview;
[UIView animateWithDuration:0.3
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;
//YOU MISSED TO ADD BELOW LINE....
content.frame = contentFrame;
}];
}