我昨天发布了这个问题:https://stackoverflow.com/questions/23119494/what-is-the-best-way-to-dynamically-change-the-style-of-a-uicollectionview并收到0回复。
我决定尝试一下。我想要做的是在单击UISegmentedControl时将网格样式默认集合视图显示更改为单个文件显示。
默认网格样式:
点击左侧按钮后会显示单个项目视图:
我有一个方法准备好响应每个段的点击。我现在在点击段控件时隐藏了collectionView,并在再次点击它时取消隐藏它。:
- (void)displayTypeSegmentSelected
{
_selectedDisplayTypeIndex = [_displayTypeControl selectedSegmentIndex];
if (_selectedDisplayTypeIndex == 0) {
NSLog(@"Single file item view selected");
[_collectionView setHidden:YES];
} else {
NSLog(@"Grid style view selected");
[_collectionView setHidden:NO];
}
}
这非常适合显示和隐藏我的默认collectionView,并且该控制器其余部分的功能不受影响。
可能的解决方案:
现在我想知道是否有办法用单一文件设计创建另一个collectionView,并在隐藏默认collectionView时显示它。它将使用完全相同的数据源和插件到控制器,只是工作。
这可以完成视图界面构建器吗?如果是这样,我该怎么做?
可以通过编程方式完成吗?如果是这样,我该如何做呢?
我很想知道我是否应该首先创建collectionViews,而不是在开始时创建默认值,而只在单击segmentControl时才能创建单个文件。
会欣赏一些例子或清楚的解释。一直在研究如何做到这一点没有运气。
此致
答案 0 :(得分:0)
您可以使用相同的集合视图,但只能更改数据源和委托。
答案 1 :(得分:0)
可以使用两个视图控制器并切换它们在导航堆栈上的位置。
但是,对于这种特殊情况,我建议使用一个具有两个全尺寸视图的视图控制器,并在最顶层视图的视图层次结构中切换它们的位置,或者隐藏和取消隐藏顶部的视图。