2017-02-25 11 views
0

私はその行にuiscrollビューを表示したいテーブルビューを持っています。今もののUITableViewCellでUIScrollviewのコンテンツを設定する

func loadContent(){ 
    var xaxis = 0 
    var numOfPages = 0 
    let screenSize = UIScreen.main.bounds.size 
    for index in 1...3 { 
     let pagevw = CustomPageView(frame: CGRect(x: xaxis, y: 0, width: Int(scrlvw.frame.size.width), height: Int(scrlvw.frame.size.height-10))) 
     pagevw.translatesAutoresizingMaskIntoConstraints = true 
     scrlvw.addSubview(pagevw) 
     xaxis = xaxis + Int(screenSize.width) 
     numOfPages += 1 
    } 
    let content = CGSize(width: numOfPages * (Int(scrlvw.frame.height)), height: Int(scrlvw.frame.height-30)) 
    print("content") 
    print(content) 
    scrlvw.contentSize = CGSize(width: numOfPages * (Int(scrlvw.frame.height)), height: Int(scrlvw.frame.height-30)) 
    pagecontrol.numberOfPages = numOfPages 
} 

:今、私は、次のようUIScrollViewのためのページを追加しようとしていますそのテーブルビューのセル内では、カスタムテーブルビューのセルを持っている

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat{ 
    let deviceFrame = UIScreen.main.bounds.size 
    print((1.21*deviceFrame.width)) 
    return (1.21*deviceFrame.width) 
} 

を:私は次のようにテーブルビューの高さを設定していますセルが正しく表示されていますが、テーブルのコンテンツサイズが正しく更新されていません。おそらくオートレイアウトが問題を引き起こしているのでしょう。私は私のページの中に多くのコンポーネントがあるので、私はオートレイアウトを残しておきたい。 誰かが私を助けることができますか?あなたが動的にUIScrollViewのに自動レイアウトのコンテンツを追加

おかげ

+0

「テーブルのコンテンツサイズ」に関連するものは何も表示されていません...テーブルの*すべての行の高さとして '(1.21 * deviceFrame.width)'を返します。あなたのテーブルにこのような12の行を作成することを意味しますが、あなたのテーブルは上下にスクロールしません。 – DonMag

+0

私はテーブル行にUIScrollViewのコンテンツサイズを意味しましたが、テーブルは問題ありませんが、自動レイアウトのためにscrollviewは正しいコンテンツサイズを取得しません。 – pankaj

答えて

0

は、あなたではなく時間、wは各サブビューのx、yは、設定の古いスタイルを使用するよりも、サブビューに適切な制約を追加したいとスクロールビューのContentSizeを計算します。

このようにするときは、「ページ」(埋め込みサブビュー)の配置だけでなく、スクロールビューのコンテンツサイズの辺を「押し出す」ために制約を使用します。

垂直スクロールUIScrollViewに埋め込まれた水平スクロールUIScrollViewにサブビューを追加するサンプルをまとめました。それはSwift 2.2にありますが、問題なく3.0に自動的に更新されます。

https://github.com/DonMag/SWAutoLayoutScrollView

私は同じことを達成し、すべてのそれらの制約を割り当てるには、いくつかの異なる方法、で遊ん。 "作業中の"メソッドはまだメインビューコントローラクラスにあります。

スクロールの必要性を解決するためにこれらのテクニックを複製することができます。

関連する問題