Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.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
Iphone UITableview从不同UINavigationController显示时更改高度(';更多';)_Iphone_Ios_Uitabbarcontroller_Uitableview - Fatal编程技术网

Iphone UITableview从不同UINavigationController显示时更改高度(';更多';)

Iphone UITableview从不同UINavigationController显示时更改高度(';更多';),iphone,ios,uitabbarcontroller,uitableview,Iphone,Ios,Uitabbarcontroller,Uitableview,当从UINavigationController中的UITableViewController显示时,UITableViewController的tableView更改其帧位置时,我遇到了一个问题。当从常规选项卡显示时,框架很好。但是,如果我从“更多”部分移动并显示UITableViewController,tableview将向下移动到与导航栏相同的高度(我不希望这样)。当我测试正确和非正确位置之间的运行时帧坐标时,它显示为相同的(0.0、0.0、320.0、411.0)。 只有在我在一个导航

当从UINavigationController中的UITableViewController显示时,UITableViewController的tableView更改其帧位置时,我遇到了一个问题。当从常规选项卡显示时,框架很好。但是,如果我从“更多”部分移动并显示UITableViewController,tableview将向下移动到与导航栏相同的高度(我不希望这样)。当我测试正确和非正确位置之间的运行时帧坐标时,它显示为相同的(0.0、0.0、320.0、411.0)。 只有在我在一个导航控制器中显示tableView,然后在另一个导航控制器中移动并显示它之后,才会出现此问题,例如将“更多”VC移到选项卡,或将选项卡移到“更多”VC

这里发生了什么,我该怎么解决

最后一张图片是应用程序启动时的样子,应该是这样的,导航栏正下方的表格视图。但是,在前两个示例中,您可以看到tableview已下移

提前谢谢


重置表视图nib文件的自动调整大小属性

你可以在里面找到它:
工具>属性检查器

首先使用XIB在视图中获取UITableView。然后添加导航栏并调整tableview的大小。你会得到你真正想要的


如果您仍然发现任何问题,请告诉我。

如果您可以显示您的代码,或截图进行设置,这将非常容易。根据我的经验,创建UITableViewController实例并在Interface Builder中连接它们将扩展到整个屏幕

如何将其连接到“更多”选项卡?如果它位于两个选项卡中,并且您正在执行任何动态操作,请检查UITableViewController类viewDidLoad方法。您不应该添加/删除/重新添加表,除非它们是单独的实例

有些地方需要检查:

  • n记录您的床头视图高度和位置
  • n记录您的TableFooter视图高度和位置
  • 创建backgroundView并将其指定给tableView的backgroundView属性,以查看其真实尺寸以及显示位置
  • 检查UITableViewController的视图起始位置

  • 但愿我能多帮点忙。希望查看您的设置/代码。

    UITableViewController具有这样的行为,它总是尝试以最佳方式适应屏幕大小。UITableViewController非常适合全屏tableview,但我建议不要使用UITableViewController,而是通过同时实现数据源和委托来实现TableViewController。有些人确实将ResizeSubView设置为NO并解决了他们的问题,但我真的建议您自己重新创建控制器,这并没有太多工作。

    我能够解决这个问题。事实证明,当您将UINavigationController中的UITableView控制器移动到moreNavigationController时,contentInset和ScrollIndicationSet的“top”变量中会添加44个像素。我不知道为什么会发生这种情况,也不知道为什么tableView离开“moreNavigationController”时这44个像素没有被删除,但下面是答案。我在VIEWWILLISE中调用这两行

    self.tableView.contentInset = UIEdgeInsetsMake(44.0, 0.0, 0.0, 0.0);
    self.tableView.scrollIndicatorInsets = UIEdgeInsetsMake(44.0, 0.0, 0.0, 0.0);
    

    当您单击更多导航按钮或更多其他选项卡时,会产生此问题。这些图片是同一页的(左边有两个显示完成按钮,但有一个显示更多导航按钮)。也许可以添加一些你正在使用的代码。从显示新视图的操作开始,然后ViewDiLoad或viewWill/DidDisplay将显示该表视图的代理。不过,这就是问题所在,我没有手动设置任何自定义项。我已经用普通的UITableViewController和UIViewController尝试过了。他们都这样做。所有视图控制器都可以。这可能是iOS 4.2.1的一个bug吗?我认为这不是一个错误,因为某些不确定的原因,某些时候会出现未失效的行为。我想您需要在每次操作后设置表的框架。或者您可以尝试删除此表并为视图创建新表,这可能会对您有所帮助。Ishu,您能给我举一个删除表并为视图创建新表的示例吗?如何?你是说尺码检查员吗?