2017-11-16 7 views
0

スクロールされていません。UIScrollViewのは、これは私が単にコードで何をすべきかですもう

enter image description here

しかし、私はスクロールすることはできません。

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 

    let scroll = UIScrollView() 
    scroll.backgroundColor = .yellow 
    scroll.translatesAutoresizingMaskIntoConstraints = false 

    let leading = NSLayoutConstraint(item: scroll, attribute: .leading, relatedBy: .equal, toItem: view, attribute: .leading, multiplier: 1, constant: 0) 
    let trailing = NSLayoutConstraint(item: scroll, attribute: .trailing, relatedBy: .equal, toItem: view, attribute: .trailing, multiplier: 1, constant: 0) 
    let top = NSLayoutConstraint(item: scroll, attribute: .top, relatedBy: .equal, toItem: view, attribute: .top, multiplier: 1, constant: 0) 
    let bottom = NSLayoutConstraint(item: scroll, attribute: .bottom, relatedBy: .equal, toItem: view, attribute: .bottom, multiplier: 1, constant: 0) 

    view.addSubview(scroll) 
    view.addConstraints([leading, trailing, top, bottom]) 

    let label = UILabel() 
    label.text = "helloo, my new text" 
    label.backgroundColor = .orange 
    label.translatesAutoresizingMaskIntoConstraints = false 

    let leading2 = NSLayoutConstraint(item: label, attribute: .leading, relatedBy: .equal, toItem: scroll, attribute: .leading, multiplier: 1, constant: 0) 
    let trailing2 = NSLayoutConstraint(item: label, attribute: .trailing, relatedBy: .equal, toItem: scroll, attribute: .trailing, multiplier: 1, constant: 0) 
    let top2 = NSLayoutConstraint(item: label, attribute: .top, relatedBy: .equal, toItem: scroll, attribute: .top, multiplier: 1, constant: 200) 
    let bottom2 = NSLayoutConstraint(item: label, attribute: .bottom, relatedBy: .equal, toItem: scroll, attribute: .bottom, multiplier: 1, constant: 400) 
    let height2 = NSLayoutConstraint(item: label, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .height, multiplier: 1, constant: 600) 

    scroll.addSubview(label) 
    label.addConstraint(height2) 
    scroll.addConstraints([leading2, trailing2, top2, bottom2]) 
    scroll.layoutIfNeeded() 
} 

これは、画面上でどのように見えるかですそれはまったくありません。どうして?ここで何が間違っていますか?

私にはたくさんの例と質問がありますが、1つではありません。

+0

に400から一定の値を変更して何かがUILabelとUIScrollViewのに与えられた制約が間違っています。垂直方向にスクロールしたい場合は、UILabelと一緒に垂直方向にスクロールします。 –

+0

何が間違っていますか?)私はこれについて長いこと考えています... –

答えて

1

ラベルに間違ったボトムコンストレインを指定しました。 0

let bottom2 = NSLayoutConstraint(item: label, attribute: .bottom, relatedBy: .equal, toItem: scroll, attribute: .bottom, multiplier: 1, constant: 0) 

enter image description here

+1

それは問題です;)なぜ0は良いですが、400はありません? –

+0

@BartłomiejSemańczyk:scrollviewはこの情報を使用してコンテンツサイズを計算し、スクロールビューはコンテンツサイズが元のフレームサイズを超えている場合にのみスクロールします。 –

関連する問題