滚动水平和垂直两个方向

我有要求滚动水平和垂直的图像。

我有segregated vertically部分, in each section itself it will be so many images which will be scrolled horizontally

我使用Ray wenderlich教程使用UICollectionView进行垂直滚动,但是如何在每个部分中获得水平滚动?

我应该使用任何其他对象,如UITableViewUIScrollview为此目的?

任何教程可用如何实现这一目标?

Is it compulsory to implement Layout subclass or UICollectionviewFlowlayout when using collection view

编辑

到目前为止,我已经实现了这个垂直滚动的代码,每个代码有5个部分,但不能够滚动单个部分

 - (NSInteger)collectionView:(UICollectionView *)view numberOfItemsInSection:(NSInteger)section; { NSArray *arrayReturn = [self returnArray:section]; return arrayReturn.count; } - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { return 5; } - (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath { ImageCell *cell = [cv dequeueReusableCellWithReuseIdentifier:@"imagecell" forIndexPath:indexPath]; NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^{ NSArray *arrSection = [NSArray arrayWithArray:[self returnArray:indexPath.section]]; NSString *fileName = [arrSection objectAtIndex:indexPath.row]; UIImage *image = [UIImage imageNamed:fileName]; dispatch_async(dispatch_get_main_queue(), ^{ // cell.imgVw.image = ; if([CollectionView.indexPathsForVisibleItems containsObject:indexPath]){ ImageCell *currentCell = (ImageCell *) [cv cellForItemAtIndexPath:indexPath]; currentCell.imgVw.image = image; } }); }]; [self.thumbnailQueue addOperation:operation]; return cell; } - (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath { HeaderView *Header = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"PhotoHeaderView" forIndexPath:indexPath]; Header.lblHeaderTitle.text = @"Header title"; Header.backgroundColor = [UIColor yellowColor]; return Header; } 

这里是一个类似的教程:

http://www.raywenderlich.com/4723/how-to-make-an-interface-with-horizo​​ntal-tables-like-the-pulse-news-app-part-2

基本上你需要做以下的事情:

  • 采取tableView或CollectionView
  • 在每个单元格中,您需要添加一个水平滚动function的滚动视图。
  • 添加项目以在创build单元格时滚动每个单元格的视图,并为滚动视图提供适当的内容大小。

它会给你一个理想的结果。

尝试这个

 **viewController.h** IBOutlet UIScrollView *scrollViewMain; **viewController.m** - (void)viewDidLoad { [super viewDidLoad]; [self createDisplay]; // Do any additional setup after loading the view, typically from a nib. } -(void) createDisplay { for(UIView *subView in scrollViewMain.subviews) { if(![subView isKindOfClass:[UIImageView class]]) { [subView removeFromSuperview]; } } int yPos =5; for (int i=0; i< 10; i++) { int xPosition=5; UIScrollView *scrollView =[[UIScrollView alloc]initWithFrame:CGRectMake(xPosition, yPos, scrollViewMain.frame.size.width, 100)]; scrollView.backgroundColor =[UIColor clearColor]; scrollView.autoresizingMask =UIViewAutoresizingFlexibleWidth; xPosition +=5; for (int j=0; j<10; j++) { UILabel *lblTitle = [[UILabel alloc] initWithFrame:CGRectMake(xPosition, 0, 100, 100)]; lblTitle.textColor = [UIColor whiteColor]; lblTitle.backgroundColor =[UIColor greenColor]; lblTitle.text = @"test"; lblTitle.numberOfLines =0; lblTitle.font = [UIFont boldSystemFontOfSize:15]; [scrollView addSubview:lblTitle]; xPosition +=100; xPosition +=10; } [scrollView setContentSize:CGSizeMake(xPosition, 100)]; [scrollViewMain addSubview:scrollView]; yPos +=120; } [scrollViewMain flashScrollIndicators]; [scrollViewMain setContentSize:CGSizeMake(0, yPos)]; }