这是我第一次使用UICollectionView,而我无法解决的问题发生了。 这是我的代码,预计会显示一行10个按钮。
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return 10;
}
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
return 1;
}
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellidentifer forIndexPath:indexPath];
UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];
btn.frame = CGRectMake(50, 50, 40,40);
btn.backgroundColor = [UIColor greenColor];
[cell addSubview:btn];
return cell;
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
static NSString *cellidentifer = @"cell";
- (void)viewDidLoad
{
[super viewDidLoad];
UICollectionViewFlowLayout *flowlayout = [[UICollectionViewFlowLayout alloc]init];
_col = [[UICollectionView alloc]initWithFrame:self.view.frame collectionViewLayout:flowlayout];
_col.backgroundColor = [UIColor whiteColor];
_col.contentSize = CGSizeMake(500, 500);
_col.dataSource = self;
_col.delegate = self;
[_col registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:cellidentifer];
[self.view addSubview:_col];
}
这就是我得到的
UICollectionViewFlowLayout *flowlayout = [[UICollectionViewFlowLayout alloc]init];
flowlayout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
它给了我这个
我现在感到很困惑,谢谢
答案 0 :(得分:0)
将滚动方向更改为水平时所看到的是正常的。使用流布局,单元格首先沿着一行填充(如果滚动是垂直的),直到到达内容视图的末尾,然后它将进入下一行并填充,直到所有单元格都布局为止。如果滚动是水平的,它会填充第一列向下,然后转到下一列,这就是您在第二张图片中看到的内容。我不知道你的第三张图片中发生了什么,你需要提供更多信息;您将按钮框设置为什么尺寸给出了结果?