iOS:I 使用 xib 和 `autolayout` 创建一个 `uiview`,将其设置为 tableview 的 header,出现了一个奇怪的问题
iOS:I use xib with `autolayout` to create a`uiview`, set it to a tableview's header,there comes a strange issue
下面是我的代码:
/* searchBar */
lml_search = [[NSBundle mainBundle] loadNibNamed:@"LMLSearchHeadView" owner:self options:nil].firstObject;
self.tableView.tableHeaderView = lml_search;
并且在我的 xib
中,我设置了 xib
的 backview
,我为 backview
设置了 4 constraints
space 到 xib
的视图。
在viewcontroller1
首秀是正常的,但是在viewcontroller1
push到viewcontroller2
,pop到viewcontroller1
之后,lml_search
的身高变成了0
!
这段代码可以证明我:
(lldb) po lml_search
<LMLSearchHeadView: 0x7f9c1e33f4e0; frame = (0 0; 320 0); autoresize = W+H; layer = <CALayer: 0x7f9c1e33d980>>
我不知道为什么它会出现在我的项目中。
我得到了解决方案,但我必须在 viewWillAppear:
:
中设置 xib's
视图框架
[lml_search setFrame:CGRectMake(0, 0, kScreen_Width, 44)];
但是我不知道这个问题的真正原因。
下面是我的代码:
/* searchBar */
lml_search = [[NSBundle mainBundle] loadNibNamed:@"LMLSearchHeadView" owner:self options:nil].firstObject;
self.tableView.tableHeaderView = lml_search;
并且在我的 xib
中,我设置了 xib
的 backview
,我为 backview
设置了 4 constraints
space 到 xib
的视图。
在viewcontroller1
首秀是正常的,但是在viewcontroller1
push到viewcontroller2
,pop到viewcontroller1
之后,lml_search
的身高变成了0
!
这段代码可以证明我:
(lldb) po lml_search
<LMLSearchHeadView: 0x7f9c1e33f4e0; frame = (0 0; 320 0); autoresize = W+H; layer = <CALayer: 0x7f9c1e33d980>>
我不知道为什么它会出现在我的项目中。
我得到了解决方案,但我必须在 viewWillAppear:
:
xib's
视图框架
[lml_search setFrame:CGRectMake(0, 0, kScreen_Width, 44)];
但是我不知道这个问题的真正原因。