繁体   English   中英

为什么子表视图大小不正确?

[英]Why is Child Table View not sizing properly?

首先,请不要提出建议我将 TableViewController 作为子视图删除的“聪明”解决方案。 谢谢你。

概括

我正在以编程方式添加一个 Tableviewcontroller,作为一个固定大小为 216 的视图的子项。我一直在搞乱约束......并且使用 View Hierachy Debugger,我看到 TableView 的高度总是 852......这基本上是屏幕的全尺寸。 如何将 TableView 正确调整为其包含视图的大小?

在此处输入图像描述

下面是一堆我试图用来约束事物的代码......无济于事。 谢谢你。

import UIKit

class ViewController: UIViewController {
    
    @IBOutlet weak var xyz: UIView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let child = UITableViewController()
        xyz.addSubview(child.view)
        self.addChild(child)
        child.didMove(toParent: self)
        
        //child.view.translatesAutoresizingMaskIntoConstraints = false
        let safeArea = xyz.layoutMarginsGuide

        
        var height = child.view.heightAnchor.constraint(equalToConstant: 292)
        height = height.constraintWithMultiplier(2000)
        height.isActive = true
        
        
        child.view.topAnchor.constraint(equalTo: safeArea.topAnchor).isActive = true
        child.view.bottomAnchor.constraint(equalTo: safeArea.bottomAnchor).isActive = true
        
        child.view.leftAnchor.constraint(equalTo: safeArea.leftAnchor).isActive = true
        child.view.rightAnchor.constraint(equalTo: safeArea.rightAnchor).isActive = true
    }
    
}

extension NSLayoutConstraint {
    func constraintWithMultiplier(_ multiplier: CGFloat) -> NSLayoutConstraint {
        return NSLayoutConstraint(item: self.firstItem!, attribute: self.firstAttribute, relatedBy: self.relation, toItem: self.secondItem, attribute: self.secondAttribute, multiplier: multiplier, constant: self.constant)
    }
}

取消注释这行代码

child.view.translatesAutoresizingMaskIntoConstraints = false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM