我必须使用页眉和页脚视图实现TableView。我已经实现了所有功能,但是当创建tableView时,页脚和页眉仍停留在屏幕上。
我希望页脚位于表格视图中最后一个单元格的底部,当我向下滚动至表格视图底部时,她将出现。 因此,就像标题一样,当我将向下滚动标题时,将停留在表格视图的顶部。有人可以帮助我吗? 我的代码:
包含tableView的Controllr:
@IBOutlet weak var tableView: UITableView! {
didSet {
let headerNib = UINib(nibName: SearchingHeader.headerID, bundle: nil)
tableView.register(headerNib, forHeaderFooterViewReuseIdentifier: SearchingHeader.headerID)
let cellNib = UINib(nibName: SearchingResultTableViewCell.cellId, bundle: nil)
tableView.register(cellNib, forCellReuseIdentifier: SearchingResultTableViewCell.cellId)
let footerNib = UINib(nibName: SearchingFooter.footerId, bundle: nil)
tableView.register(footerNib, forHeaderFooterViewReuseIdentifier: SearchingFooter.footerId)
}
}
extension SearchingViewController: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let header = tableView.dequeueReusableHeaderFooterView(withIdentifier: SearchingHeader.headerID) as! SearchingHeader
header.objectForSearch = objectOfSearch
header.addressOnSearch = addressOfSearch
return header.contentView
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 132
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let footer = tableView.dequeueReusableHeaderFooterView(withIdentifier: SearchingFooter.footerId) as! SearchingFooter
return footer.contentView
}
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 243
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: SearchingResultTableViewCell.cellId, for: indexPath) as! SearchingResultTableViewCell
return cell
}
class SearchingHeader: UITableViewHeaderFooterView {
/// OUTLETS ///
@IBOutlet weak var mapButton: EnhancedButton! {
didSet {
mapButton.setImage(Asset.Icons.icoMap.image, for: .normal)
mapButton.imageColor = UIColor.white
mapButton.cornerRadius = 5
mapButton.backgroundColor = ColorName.mainTurquoise.color
}
}
@IBOutlet weak var objectOfSearchingTextField: LocalizedTextField!
@IBOutlet weak var searchIconImageView: EnhancedImageView! {
didSet {
searchIconImageView.imageColor = ColorName.mainOrange.color
}
}
@IBOutlet weak var collectionView: UICollectionView! {
didSet {
collectionView.layer.backgroundColor = ColorName.mainGrey.color.cgColor
let cellNib = UINib(nibName: SearchFilterCollectionViewCell.cellId , bundle: nil)
collectionView.register(cellNib, forCellWithReuseIdentifier: SearchFilterCollectionViewCell.cellId )
}
}
/// PROPERTIES ///
static var headerID: String = "Header"
var objectForSearch: String? {
didSet {
setSearchParameters()
}
}
var addressOnSearch: String? {
didSet {
setSearchParameters()
}
}
/// METHODS
override func awakeFromNib() {
super.awakeFromNib()
setUpView()
}
以相同的方式创建页脚。