だから私はスクロールビューを入れるビューコントローラーを持っています。スクロールビューの中に、画像、ラベル、ボタンなどのアイテムの束を上半分に置きます。下半分に、私はuitableviewを置きました。私はすべての制約とすべてを設定しました。次のコードを使用しました。
let bounds: CGRect = UIScreen.main.bounds
let w:Int = Int(bounds.size.width)
let h:Int = Int(chaptersTableView.contentSize.height)
let temp: Int = 300 + h
scrollView.contentSize = CGSize(width: w, height: temp)
chaptersTableView.frame = CGRect (x: 0, y: 280.5, width: self.view.frame.size.width, height: CGFloat(44 * sampleModel.objectChapterList.count))
スクロールビューのコンテンツサイズを設定してから、テーブルビューフレームの高さを設定したいと思いました。
テーブルビューには多くのアイテムが含まれるようになっているので、ユーザーが下にスクロールできるようにし、スクロールビューのコンテンツ全体を下にスクロールしてテーブルビューをさらに表示できるようにします。ただし、テーブルビューは常に切り取られ、スクロールビューを下にスクロールするとテーブルが終了します。より多くのセルにアクセスするには、テーブルビュー内をスクロールする必要があります。
「44 *(テーブルのセル数)」を100のような乱数に置き換えても、最初はテーブルを切り取って短くしますが、画面をタップするとテーブルが変わります画面の下部まで(スクロールビューの下部ではなく)完全な長さで再開します。
スクロールビューの上半分にあるすべてのものをテーブルビューの別のセルにして、テーブルの一部にできるようにし、この面倒を回避できるようにすることを考えましたが、それは大変な作業になるので、私はこれを行うことができました。
写真などが必要な場合は、提供させていただきます。はっきりしない場合は、必ずコメントしてください。説明がわかりやすくなります。
TableViewのみを使用することをお勧めします。 tableViewのヘッダーにトップビューを作成できます。これを行うと、scrollViewのコンテンツサイズを維持する必要はありません。
同じ方向の2つのスクロール可能なビューを互いに配置すると、常に問題が発生します。あなたの場合、画面にUITableView
だけを配置する方が良いと思います。静的コンテンツを保持する別のスクロール不可能なビュー内にUITableView
を配置するかどうかは、静的コンテンツを次のように配置できます。 UITableView
のヘッダー。アイデアを詳しく説明する必要がある場合はお知らせください。願っています、それは助けになるでしょう。
私はあなたがこれをすべきだと思います:
最初:( https://forums.developer.Apple.com/thread/81895 を参照)
tableView.estimatedRowHeight = 0 tableView.estimatedSectionHeaderHeight = 0 tableView.estimatedSectionFooterHeight = 0 tableView.rowHeight = 70
その後
tableView.frame.size.height = tableView.contentSize.height
UIScrollView
に静的テーブルを追加することをお勧めします。私の知る限り、UITableView
はUIScrollView
のサブクラスです。つまり、UIScrollView
を別のサブクラスに入れています。これにより、スクロールが奇妙な動作をする可能性があります。
すでにコンテンツサイズを計算してテーブルフレームサイズを設定している場合は、次のコードを使用してテーブルビューのスクロールプロパティを無効にしてみてください。
tableView.scrollEnabled = NO;
どうなるか教えてください:)