在水平滚动UICollectionView内的UICollectionViewCell上垂直滚动

时间:2017-01-31 16:18:29

标签: ios objective-c uiscrollview uicollectionviewcell

我有两个单元格的collectionview。一个用于登录,另一个用于分页的注册。 在每个单元格中,我需要垂直滚动。

我试图在集合视图单元格中保留垂直滚动视图,但它不起作用。

看过很少的教程&将集合视图放在表视图中的问题。但是想知道我们可以在水平滚动集合视图的单元格内保留垂直滚动视图或任何其他选项来实现此

2 个答案:

答案 0 :(得分:0)

您可以将垂直滚动视图放入tableView。 只需将其放入tableViewCell的contentView,示例代码:

- (void)viewDidLoad {
    [super viewDidLoad];

    UITableView* tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
    tableView.delegate = self;
    tableView.dataSource = self;
    tableView.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height);

    [self.view addSubview:tableView];
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return 1;
}

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell* cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:nil];

    UIScrollView* sv = [[UIScrollView alloc] init];
    CGRect rect = CGRectZero;
    rect.size.width = self.view.bounds.size.width;
    rect.size.height = 60;
    sv.frame = rect;
    sv.contentSize = CGSizeMake(1000, 60);

    UILabel* label = [[UILabel alloc] init];
    label.frame = CGRectMake(0, 0, 900, 30);
    label.text = @"hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello ";
    label.adjustsFontSizeToFitWidth = true;

    [sv addSubview:label];

    [cell.contentView addSubview:sv];

    return cell;
}

答案 1 :(得分:0)

我遇到了同样的问题,这里有两种方法可以尝试:

  1. 如果要垂直滚动,可以设置视图框高度> collectionView框架高度。
  2. 您可以覆盖hitTest:event方法,添加您想要下一个响应者的查找视图