UITableView-设置页脚和页眉-如何设置表格视图单元格的滚动

时间:2018-08-20 10:44:15

标签: ios swift uitableview

我必须使用页眉和页脚视图实现TableView。我已经实现了所有功能,但是当创建tableView时,页脚和页眉仍停留在屏幕上。

enter image description here

我希望页脚位于表格视图中最后一个单元格的底部,当我向下滚动至表格视图底部时,她将出现。 因此,就像标题一样,当我将向下滚动标题时,将停留在表格视图的顶部。有人可以帮助我吗? 我的代码:

包含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
}

标题xib: enter image description here

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()
}

以相同的方式创建页脚。

0 个答案:

没有答案