ios - 如何让 UITableView 忽略 UINavigationController

标签 ios swift xcode uitableview

所以我有这个屏幕:

Current TableViewController

此图像是 UIView 的 subview ,我将其用作表格的标题:

class CoursesDetailPageHeader: UITableViewHeaderFooterView {

    @IBOutlet weak var imageView: UIImageView!

    override func awakeFromNib() {
        super.awakeFromNib()

        imageView.contentMode = .scaleAspectFill
        imageView.clipsToBounds = true
    }

    func setDefaultImage() {
        imageView.image = UIImage(named: "header")
    }
}

还有我的 tableView:

override func viewDidLoad() {
    super.viewDidLoad()

    let headerNib = UINib(nibName: "CoursesDetailPageHeader", bundle: nil)
    tableView.register(headerNib, forHeaderFooterViewReuseIdentifier: "pageHeader")
}

override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return 220
}

override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    let pageHeader = tableView.dequeueReusableHeaderFooterView(withIdentifier: "pageHeader") as! CoursesDetailPageHeader
    pageHeader.setDefaultImage()

    return pageHeader
}

我应该怎么做,才能将 tableView 置于顶部,这样就没有空白空间(透明的 navController 所在的位置)?

更新: 展示我想要的东西: Desired TableViewController

已解决: 感谢@kathayatnk 问题已通过以下代码解决:

let statusBarHeight = UIApplication.shared.statusBarFrame.height
let navigationBarHeight = navigationController!.navigationBar.frame.size.height
let insets = UIEdgeInsets(top: -(statusBarHeight + navigationBarHeight), left: 0, bottom: 0, right: 0)
self.tableView.contentInset = insets

最佳答案

你或许可以设置嵌入式 tableView 的 insets

let insets = UIEdgeInsets(top: -64.0, left: 0, bottom: 0, right: 0)
self.tableView.contentInset = insets;

关于ios - 如何让 UITableView 忽略 UINavigationController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44923374/

相关文章:

arrays - 调用中的额外参数

iphone - 无法通过应用程序加载器提交

ios - 表达式类型不明确,没有更多上下文错误

ios - 如何修复 AssetsPickerController iOS 中 PHImageManager 的空资源问题?

ios - CoreGraphics 和上下文中的旋转和渐变

ios - 限制 UIView 内的标签,该标签位于可扩展的 collectionViewCell 内

ios - 如何使用 Urban AirShip (Swift) 获取 appDelegate

android - Android和IOS如何连接SQL Server

objective-c - Monotouch Objective-C 绑定(bind)

ios - Cordova 通知插件安装失败(Cordova 3.6)