如何解决为什么子表视图的大小不正确?
首先,请不要提出建议您将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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。