私のアプリにはカスタムUITableView
セルがあります。一度に1つのセルだけを表示したいのですが、次のセルは部分的に表示されるはずです。isPagingEnabled
ScrollViewでは、YESに設定できます。
しかし、どうすれば上記で行うことができUITableView
ますか?
ありがとう
私のアプリにはカスタムUITableView
セルがあります。一度に1つのセルだけを表示したいのですが、次のセルは部分的に表示されるはずです。isPagingEnabled
ScrollViewでは、YESに設定できます。
しかし、どうすれば上記で行うことができUITableView
ますか?
ありがとう
UITableView
はから継承されるため、テーブル ビュー自体にをUIScrollView
設定できることに注意してください。pagingEnabled
YES
もちろん、これはすべてのセルとテーブル ビュー自体が同じ高さである場合にのみ機能します。
スクロール後にテーブルビューの上部からセルを常に開始したい場合は、 a を使用して次のUIScrollViewDelegate
ように実装できます。
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView
withVelocity:(CGPoint)velocity
targetContentOffset:(inout CGPoint *)targetContentOffset
{
UITableView *tv = (UITableView*)scrollView;
NSIndexPath *indexPathOfTopRowAfterScrolling = [tv indexPathForRowAtPoint:
*targetContentOffset
];
CGRect rectForTopRowAfterScrolling = [tv rectForRowAtIndexPath:
indexPathOfTopRowAfterScrolling
];
targetContentOffset->y=rectForTopRowAfterScrolling.origin.y;
}
これにより、スクロール アクションが終了するコンテンツ オフセットを調整できます。
これには UITableView をまったく使用しないと思います。
ページ化されたコンテンツのスタックが多い UIScrollView を使用すると思います。スクロール アクティビティでそのコンテンツを動的に再構築できるため、UITableView のメモリ管理を模倣できます。UIScrollView は、その contentView のフレームの形状に応じて、垂直方向のページングを喜んで行います。
言い換えれば、UITableView をスクロール ビューのようにページ分割するよりも、UIScrollView をテーブルのように動作させる方が簡単だと思います。