Ios 斯威夫特视图没有出现

Ios 斯威夫特视图没有出现,ios,swift,Ios,Swift,我试图在我的主视图上创建一个UITextView,我用textView=UITextView(frame:cgrit(x:10,y:10,width:300,height:300))实现了这一点,但由于某些原因,我无法使用约束实现。以下是我在viewDidLoad()中调用的函数: 这是文本视图: private let textView: UITextView = { let view = UITextView() view.translatesAutoresi

我试图在我的主视图上创建一个
UITextView
,我用
textView=UITextView(frame:cgrit(x:10,y:10,width:300,height:300))
实现了这一点,但由于某些原因,我无法使用约束实现。以下是我在
viewDidLoad()中调用的函数:

这是
文本视图

private let textView: UITextView = {
        let view = UITextView()
        view.translatesAutoresizingMaskIntoConstraints = false
        return view
}()
我还是一个非常初学者,但是
print(view.subview)
显示
textView
是主视图的一个子视图(我猜)

[]

您创建约束,但从不将其设置为活动约束。更改此选项应有助于使其正确显示:

textView.topAnchor.constraint(equalTo: view.topAnchor, constant: 10).isActive = true
textView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 10).isActive = true
textView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -10).isActive = true
textView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -10).isActive = true
您也可以使用“SnapKit”

pod“SnapKit”,“~>5.0.0”


您可以执行
private lazy var textView:UITextView
,而不是
private let textView:UITextView
。延迟实例化UITextView会在需要时加载,而不是在加载视图时加载,这可以提高性能。这是正确的答案,但您可以通过将约束声明包装在
NSLayoutConstraint.activate(:)
中来保存一些
isActive=true
,它接受一系列约束并将其全部激活。
[<UITextView: 0x7fdf64809600; frame = (0 0; 0 0); text = '';
clipsToBounds = YES; gestureRecognizers = <NSArray: 0x60000062f450>;
layer = <CALayer: 0x60000083b360>; contentOffset: {0, 0}; contentSize:
{0, -8}; adjustedContentInset: {0, 0, 0, 0}>]
textView.topAnchor.constraint(equalTo: view.topAnchor, constant: 10).isActive = true
textView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 10).isActive = true
textView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -10).isActive = true
textView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -10).isActive = true
    self.addSubView(textView)
    textView.snp.makeConstraints { (make) -> Void in
           make.top.equalTo(0)
           make.bottom.equalTo(0)
           make.left.equalTo(0)
           make.right.equalTo(0)
    }