解决xib自定义tableFooterView一个神奇的bug
最近看視頻學習,做一個demo的時候碰到一個神奇的bug,后來經過各種搜索、調試和修改代碼雖然把這個bug解決了,但不知道為什么。這里打算把這個過程分享出來,給大家做參考順便也求大神來指導下。
事情是這樣的,我打算用xib自定義一個UIView,然后將他設置為tableView的tableFooterView以實現下面這樣的效果。
其中我xib中的控件是這樣的。在xib上首先放一個點擊加載更多的UIButton。然后放一個正在加載的UIView,這個View里面有一個UIActivityIndicatorView和正在加載更多數據的UILabel,并且一開始隱藏這個View,點擊Button后顯示它。最后設置好各個約束。
設置tableFooterView的代碼是這樣的。
WKLoadMoreFooter *footerView = [WKLoadMoreFooter loadMoreFooter];footerView.delegate = self;_dealsTable.tableFooterView = footerView; 復制代碼為了能看清,我給xib設置了個背景色,效果是這樣的。Button的文字呢,當時我是懵逼的。
于是我設置了半天的Button、Label等等控件的文字顏色和背景色,發現都沒有用,點擊后雖然能加載,但是一直就是這個粉紅色的。然后,我突然想到是不是這個UIView的高度問題。于是就把他設置成tableHeaderView,果然效果就出來了,它被拉高了,覆蓋了下面的兩個cell。
之后我就找了半天怎么設置tableHeaderView的高度,試了好多種方法都沒有什么用。最后終于找到一個方法解決了這個bug,就是手動創建一個UIView ,設置這個UIView為tableHeaderVIew,再把xib的UIView放在這個UIView上面。代碼如下:
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 44)];_dealsTable.tableHeaderView = headerView;WKLoadMoreFooter *loadMoreFooterView = [WKLoadMoreFooter loadMoreFooter];footerView.delegate = self;footerView.frame = CGRectMake(0, 0, _dealsTable.frame.size.width, 44);[headerView addSubview: loadMoreFooterView]; 復制代碼最后將xib的背景色改回來,將其改為tableFooterView,前面想要的效果就出來了。如果你也遇到這樣類似的問題可以嘗試用這個方法去解決。然而,雖然解決了這個問題,但心中充滿疑惑,到底這個xib創建的UIView設置成tableFooterView的時候發生了什么呢,求大神們指教。
iOS新手,也求大神們勿噴。
轉載于:https://juejin.im/post/5a3785936fb9a0450a677282
總結
以上是生活随笔為你收集整理的解决xib自定义tableFooterView一个神奇的bug的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android类似QQ空间,微信朋友圈,
- 下一篇: python-opencv学习笔记(三)