【问题标题】:How do I create a screen which has several collection views one below the other?如何创建一个具有多个集合视图的屏幕,一个在另一个之下?
【发布时间】:2015-10-10 13:25:54
【问题描述】:

我想使用 ObjectiveC 创建一个 ios 应用程序,它有一个可滚动的屏幕,显示多个集合视图,一个在另一个之下。 我正在从一个流行的电子商务应用上传一个类似屏幕的屏幕截图。

我尝试以这样一种方式创建一个表格视图,即所有行的高度均为 0,但带有自定义标题。我在不同的标题中显示不同的视图控制器。我能够正确解析表格,但是当我向下滚动时,它滚动不顺畅。

你能帮我解决这个问题吗?提前致谢!

【问题讨论】:

  • 您必须创建表格视图并在 TableViewCell 中创建集合视图
  • 在表格单元格中插入集合视图与在表头中插入集合视图有何不同?我的意思是它会有什么不同?谢谢

标签: ios objective-c iphone ios7 ios8


【解决方案1】:

您可以创建一个代表您的每个类别的垂直流集合视图,然后为每个集合视图单元格返回一个水平流布局集合视图。这样就可以了。

【讨论】:

  • 但是,如果不是所有的集合视图都具有相同的大小,并且除了集合视图之外还有其他元素——比如表格视图和页面视图控制器,该怎么办!
  • 你必须尝试一下,你可以创建一个垂直流集合视图。然后在每个 item 的数据源中,设置条件来获取它的位置并返回你想要什么样的视图作为 UIcollectionView Cell。对于大小,您可以执行相同的条件并返回相应的大小。
【解决方案2】:

在集合视图中使用集合视图。外部集合视图将具有垂直滚动,而内部集合视图将具有水平滚动。这可以通过流布局上的scrollDirection 属性来完成。

【讨论】:

    【解决方案3】:

    只需创建一个滚动视图并给出这样的代码......

     -(void)scrollView
        {
            NSLog(@"scrollView");
            for(int i=0;i<arrImages.count;i++)
            {
                CGRect frame;
                frame.origin.x=self.scrollViewTop.frame.size.width *i;
                frame.origin.y=0;
                frame.size=self.scrollViewTop.frame.size;
                scrollViewTop.scrollsToTop=NO;
                UIImageView *image=[[UIImageView alloc]initWithFrame:frame];
                 [self.scrollViewTop addSubview:image];
                [scrollView addSubview:lblScrollView];
                UILabel *lbl=[[UILabel alloc]initWithFrame:frame];
                [scrollViewTop addSubview:lbl];
    
            }
            self.scrollViewTop.contentSize=CGSizeMake(width, height);
        }
    

    您想要在滚动视图中添加任何内容,只需将其添加为子视图即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-21
      • 1970-01-01
      • 2010-11-09
      相关资源
      最近更新 更多