Objective c 目标C:选项卡栏控制器隐藏的UITableView的一部分
您好,我已将Uitableview添加到Uiviewcontroller,如下面的代码所示。控制器是UITabbarcontroller的一部分 这里的问题是选项卡栏(位于屏幕底部)与表视图重叠。有没有办法缩短表格高度,使其不被选项卡栏部分隐藏Objective c 目标C:选项卡栏控制器隐藏的UITableView的一部分,objective-c,ios,uitableview,uitabbarcontroller,Objective C,Ios,Uitableview,Uitabbarcontroller,您好,我已将Uitableview添加到Uiviewcontroller,如下面的代码所示。控制器是UITabbarcontroller的一部分 这里的问题是选项卡栏(位于屏幕底部)与表视图重叠。有没有办法缩短表格高度,使其不被选项卡栏部分隐藏 - (void)viewDidLoad { [super viewDidLoad]; self.view = [[[UIView alloc] initWithFrame:[UIScreen mainScreen].applicatio
- (void)viewDidLoad
{
[super viewDidLoad];
self.view = [[[UIView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame] autorelease];
self.feedTableView = [[UITableView alloc]init];
self.feedTableView.frame = self.view.bounds;
self.feedTableView.delegate = self;
self.feedTableView.dataSource = self;
[self.view addSubview: self.feedTableView];
[self getData];
[self.feedTableView reloadData];
}
这里有两个问题:
- 您在viewDidLoad中设置了self.view(它应该已经在loadView中设置)
- 您将ViewFrame设置为applicationframe,但视图不会占用整个applicationframe(选项卡栏控制器的视图可能会占用整个applicationframe)
当您有一个tabbarcontroller并在其中设置了ViewController时,tabbarcontroller会设置所有ViewController(告诉它们何时加载、大小以及何时显示)。在这种情况下,不需要设置视图的帧。因此,删除
[super viewDidLoad]之后的第一行代码>应该可以解决您的问题。嘿@vakio。我很困惑。删除[super viewDidLoad]有何帮助?@Legolas,这是[super viewDidLoad]之后的第一行。我删除了该行以设置self.view。不幸的是,问题依然存在。我必须改变设置桌面视图框架的方式吗?嗯,你不应该这样做。我想不出来。。除非viewcontroller不在tabbarcontroller内(比如如果您做了一些疯狂的事情,比如tabbarcontroller.view addSubview:viewcontroller.view
或者getData
再次设置帧)。虽然我建议您找出导致这种情况的原因,但一个快速而肮脏的方法是从tableView框架的高度中减去tabbar的高度(49)。我意识到我的问题在于我没有在nib文件中添加顶部导航栏和底部选项卡栏(作为模拟指标的一部分)“部分。我不知道模拟指标会影响帧大小。我添加了顶部导航栏和底部选项卡栏,解决了重叠问题。感谢您的帮助!