0

私はscrollViewを持っており、そのscrollViewには、1つのtableViewとともに多くのラベルとtextViewがあります。いいえの場合、scrollViewは完全に正常に機能しています。tableViewの行数は少ないですが、tableViewの行数が多い場合、コンテンツを完全に表示できず、tableViewがスクロールできないため、tableViewの多くの情報を失っています。すべてのラベル、textView、tableView をスクロールビューのサブビューとして追加しました。誰でも私を助けてくれるので、完全なtableViewを取得して適切にスクロール可能にすることができます。

scrollView のコンテンツ サイズを設定するコードを次に示します。

float maxHeight = 0;

    for(UIView *v in [self.scrollView subviews]){
        if(v.frame.origin.x + v.frame.size.height > maxHeight)
            maxHeight = v.frame.origin.x + v.frame.size.height;
    }

    self.scrollView.contentSize = CGSizeMake(_scrollView.frame.size.width, maxHeight+100);
4

3 に答える 3

2

テーブルビューはスクロール ビューのサブクラスであり、通常、Apple はそれを別のスクロール ビューに追加すると問題が発生すると述べています。つまり、それを機能させる方法があります。「uitableview を uiscrollview に配置する方法」などの用語については、こちらまたは Google で検索してください。

編集:スクロールできないようにするには、テーブルビューの上に透明なビューを配置して、タッチイベントを停止または食べることができます。

于 2013-05-29T11:15:35.997 に答える
2

最初に、すべての行に収まるようにテーブルのサイズを変更する必要があります(あなたが言ったように、スクロールできないため)。そうすることですべての行が再利用できなくなるので、大きなテーブルの場合はパフォーマンスの問題が発生する可能性があります。また、@ David Hの回答にも注意してください。したがって、本当にこれを行いたい場合は、のUIScrollView代わりに別のものを使用する方がよい場合がありますUITableView(どちらの方法でもあまりメリットはありません)。

次に、すべてのビューをテーブルビューの下に移動して、それらが重ならないようにする必要があります。これを行う簡単な方法は、それらのビューを別のビューにまとめて、代わりに 1 つのビューだけを移動する必要があるようにすることです (ただし、この場合、それに応じてそのビューのサイズも変更する必要があります)。

最後に、 のすべてscrollviewのサブビューをループする代わりに、一番下にあるビューを追跡するのは簡単です (これは、ビューを生成してスクロール ビューに追加する方法によって異なります)。

于 2013-05-29T11:27:59.433 に答える
0

self.scrollingView.contentSize=CGSizeMake(320,372);

これを試して。

于 2013-05-29T11:17:04.650 に答える