11

UITableViewユーザーがリストビュー( )とグリッドビュー()を切り替えることができるボタンのあるプロジェクトがありますが、そのUICollectionView方法がわかりません。

4

2 に答える 2

19

コントローラにUITableViewという名前tableViewUICollectionViewプロパティとという名前のプロパティがあるとしますcollectionViewviewDidLoadで、開始ビューを追加する必要があります。テーブルビューだとしましょう。

- (void)viewDidLoad
{
    self.tableView.frame = self.view.bounds;
    [self.view addSubview:self.tableView];
}

次に、ボタンのコールバックで、ビューを入れ替えます。

- (void)buttonTapped:(id)sender
{
     UIView *fromView, *toView;

     if (self.tableView.superview == self.view)
     {
         fromView = self.tableView;
         toView = self.collectionView;
     }
     else
     {
         fromView = self.collectionView;
         toView = self.tableView;
     }

     [fromView removeFromSuperview];

     toView.frame = self.view.bounds;
     [self.view addSubview:toView];
}

派手なアニメーションが必要な場合は、+[UIView transitionFromView:toView:duration:options:completion:]代わりに次を使用できます。

- (void)buttonTapped:(id)sender
{
     UIView *fromView, *toView;

     if (self.tableView.superview == self.view)
     {
         fromView = self.tableView;
         toView = self.collectionView;
     }
     else
     {
         fromView = self.collectionView;
         toView = self.tableView;
     }

     toView.frame = self.view.bounds;
     [UIView transitionFromView:fromView
                         toView:toView
                       duration:0.25
                        options:UIViewAnimationTransitionFlipFromRight
                     completion:nil];
}
于 2013-01-03T13:10:04.823 に答える
2

これに対処する別の方法は、必要なモードに応じて実装UICollectionViewを切り替えることができるシングルを用意することです。UICollectionViewFlowLayout

UITableViewからに変換するためにUICollectionView、オンラインで多くのチュートリアルがあります。たとえば、これです。

于 2017-02-14T12:37:27.173 に答える