web-dev-qa-db-ja.com

UIScrollView内のUITableViewをUIScrollViewの下部まで拡張し、初期画面で途切れないようにしたい

だから私はスクロールビューを入れるビューコントローラーを持っています。スクロールビューの中に、画像、ラベル、ボタンなどのアイテムの束を上半分に置きます。下半分に、私は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のような乱数に置き換えても、最初はテーブルを切り取って短くしますが、画面をタップするとテーブルが変わります画面の下部まで(スクロールビューの下部ではなく)完全な長さで再開します。

スクロールビューの上半分にあるすべてのものをテーブルビューの別のセルにして、テーブルの一部にできるようにし、この面倒を回避できるようにすることを考えましたが、それは大変な作業になるので、私はこれを行うことができました。

写真などが必要な場合は、提供させていただきます。はっきりしない場合は、必ずコメントしてください。説明がわかりやすくなります。

5
Ethan Zhao

TableViewのみを使用することをお勧めします。 tableViewのヘッダーにトップビューを作成できます。これを行うと、scrollViewのコンテンツサイズを維持する必要はありません。

12
Aashish1aug

同じ方向の2つのスクロール可能なビューを互いに配置すると、常に問題が発生します。あなたの場合、画面にUITableViewだけを配置する方が良いと思います。静的コンテンツを保持する別のスクロール不可能なビュー内にUITableViewを配置するかどうかは、静的コンテンツを次のように配置できます。 UITableViewのヘッダー。アイデアを詳しく説明する必要がある場合はお知らせください。願っています、それは助けになるでしょう。

3
The Dreams Wind

私はあなたがこれをすべきだと思います:

最初:( 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

2
LE24

UIScrollViewに静的テーブルを追加することをお勧めします。私の知る限り、UITableViewUIScrollViewのサブクラスです。つまり、UIScrollViewを別のサブクラスに入れています。これにより、スクロールが奇妙な動作をする可能性があります。

すでにコンテンツサイズを計算してテーブルフレームサイズを設定している場合は、次のコードを使用してテーブルビューのスクロールプロパティを無効にしてみてください。

tableView.scrollEnabled = NO;

どうなるか教えてください:)

0
FireMango