用ios的手機打開項目的基本詳情頁,發現底部的tableFooterView沒法往上拖動了,如圖所示:
我這的tableFooterView是關聯一個自動佈局的view,打印了一下tableFooterView的高度居然顯示爲0,但是這在ios10之前是完全沒問題的,網上搜了很久很久,在stackoverflow上提問可能因爲格式問題還被管理人員警告並且刪帖,折騰了幾天終於找到一篇:http://m.2cto.com/kf/201506/411277.html
這裏我就直接複製過來,如下所示:
【343】【奇怪的bug】
問題描述:
1、tableView是通過IB,並且有自動佈局;
2、headView是通過代碼創建的
3、給tableView加headView,沒有問題
4、給tableView加footerView,當用代碼創建時,也沒有問題
5、但是:當footerView是用自動佈局時,tableView首次展示時,footView高度爲0;
但是,當jump到一個控制器,並且再次返回時,tableView再次顯示,此時footView高度正常了。。。
問題原因:
猜測是:tableView的自動佈局影響的
解決方法:
當前 想到的是:線程延遲幾秒再給tableView設置footView
self.tableView.tableHeaderView = self.headView;
_footerView = [RowView RowView];
// 這裏加個延遲,不然會高度爲0,應該是自動佈局導致的問題
kWeakSelf
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.05 * NSEC_PER_SEC)),dispatch_get_main_queue(), ^{
kStrongSelf
strongSelf.tableView.tableFooterView = _footerView;
[UIView animateWithDuration:5 animations:^{
[strongSelf.view layoutIfNeeded];
[strongSelf.tableView layoutIfNeeded];
}];
});
用了這個解決方法,我的問題得以解決,最終效果圖: