我有一个带有按钮的项目,允许用户在列表视图 ( UITableView
) 和网格视图 ( UICollectionView
) 之间切换,但我不知道该怎么做。
问问题
9496 次
2 回答
19
假设您的控制器有一个UITableView
名为的属性tableView
和一个UICollectionView
名为 的属性collectionView
。在您viewDidLoad
需要添加起始视图。假设它是表格视图:
- (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
,网上有很多教程,例如this。
于 2017-02-14T12:37:27.173 回答