Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 目标C:选项卡栏控制器隐藏的UITableView的一部分_Objective C_Ios_Uitableview_Uitabbarcontroller - Fatal编程技术网

Objective c 目标C:选项卡栏控制器隐藏的UITableView的一部分

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

您好,我已将Uitableview添加到Uiviewcontroller,如下面的代码所示。控制器是UITabbarcontroller的一部分

这里的问题是选项卡栏(位于屏幕底部)与表视图重叠。有没有办法缩短表格高度,使其不被选项卡栏部分隐藏

- (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文件中添加顶部导航栏和底部选项卡栏(作为模拟指标的一部分)“部分。我不知道模拟指标会影响帧大小。我添加了顶部导航栏和底部选项卡栏,解决了重叠问题。感谢您的帮助!