tableView + subView 的高度突然变化[关闭]

Posted

技术标签:

【中文标题】tableView + subView 的高度突然变化[关闭]【英文标题】:tableView + height of subView changes suddenly [closed] 【发布时间】:2014-01-24 05:39:58 【问题描述】:

这是我的代码:

UIView * ivHeaderContainer = [[UIView alloc]init];
UIView * ivFooterContainer = [[UIView alloc]init];
UIImageView * ivHeader = [[UIImageView alloc]init];
UIImageView * ivFooter = [[UIImageView alloc]init];

PO1(self.tableHeaderView);
PO1(ivHeaderContainer);
self.tableHeaderView = ivHeaderContainer;
PO1(self.tableHeaderView);
PO1(ivHeaderContainer);
[ivHeaderContainer addSubview:ivHeader];
PO1(self.tableHeaderView);

这里是登录控制台:

(41)> ivHeaderContainer: <UIView: 0x1a497700; frame = (0 0; 0 0); layer = <CALayer: 0x1a497760>>
2014-01-24 12:15:11.441 domainname[13727:40ab] <0x1a490220 Image+imageFile.m:(30)> [NSString stringWithString: self.fullFileName]: /private/var/mobile/Applications/BF1CCA03-2406-4FC9-BE33-298AD6DBAC2C/tmp/http%3A%2F%2Fimg.agoda.net%2Fhotelimages%2F475%2F4755%2F4755_08091300010092992_std.jpg.png
2014-01-24 12:37:32.767 [13727:60b] <0x165ff400 BGTableViewWithBackgroundAndTopAndBottom.m:(43)> self.tableHeaderView: <UIView: 0x1a497700; frame = (0 35; 320 0); layer = <CALayer: 

所以,在这行之后

self.tableHeaderView = ivHeaderContainer

ivHeaderContainter 的值突然变为[0, 35, 320, 0] 而不是[0, 0, 0, 0]。不知道35这个号码是从哪里来的。

只发生在一个 xib 上。 可能是什么原因?

函数 PO1(打印对象 1)只需将内容打印出来。

这只发生在表格被分组时。但是其他分组表没有这个问题。

【问题讨论】:

函数 PO1 到底是做什么的?甚至猜测这样的方法名称的可能性为零...... 它只是打印东西。 对,关键是在你的帖子中用一个简单的评论来解释这一点。 【参考方案1】:

我用这个声明了未来的 tableViewHeader

UIView * ivHeaderContainer = [[UIView alloc]initWithFrame:CGRectMake(0,0,.01,.01)];

代替

UIView * ivHeaderContainer = [[UIView alloc]init];

问题神奇地解决了。它遵循这里的解决方案:Why is there extra padding at the top of my UITableView with style UITableViewStyleGrouped in ios7

下一个问题。为什么?

【讨论】:

在 *** 上的问题的答案中没有“下一个问题”之类的东西。也许编辑你原来的问题? 我是说这个答案引出了另一个自然问题。

以上是关于tableView + subView 的高度突然变化[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将 Subview 添加到 self.tableView.tableHeaderView 不起作用

UITableView 高度问题

tableView优化思路

在 xib 中定义的 SubView 中定义的 TableView 中未调用 didSelectRowAtIndexPath

带有子视图的可变 UITableCellView 高度

iOS UITableView tableHeaderView 高度变了