gpt4 book ai didi

ios - 横向 UICollectionView 单行布局

转载 作者:可可西里 更新时间:2023-11-01 04:41:08 26 4
gpt4 key购买 nike

我正在尝试使用 UICollectionView 设置一个简单的水平布局,绕圈子没有达到预期的结果,所以任何指针或示例将不胜感激。

我粘贴经常更改但没有成功的代码可能没什么意义。

图像显示两行,第一行是单个项目,大小正确且在中心正确对齐。第二行有 3 个项目,第一个应该与上面的项目大小相同,下一个项目边缘刚好可见,表示另一个项目。当项目向左滑动时,它们应该有 3 个项目可见 - 主要项目在中心完全可见,项目 1 和 3 仅在左右边缘可见。

我已经尝试设置分页,更改 insetForSectionAtIndexminimumLineSpacingForSectionAtIndexminimumInteritemSpacingForSectionAtIndex


编辑 - 12 月 16 日

我没有很好地解释或说明这一点,所以在下面有更好的说明。 我知道如何创建 Collection View 、设置项目大小等,但无法获得所需的布局。

这是一个单行水平 UICollectionView,其中一个项目始终处于完整 View 中,其相邻项目处于部分 View 中,向用户指示左侧或右侧有更多项目,具体取决于滚动位置和项目计数。

  • 当项目 1 处于全 View 时,项目 2 处于部分 View
  • 当项目 2 处于全 View 时,项目 1 和 3 处于局部 View (左侧和右侧)
  • 当项目 3 处于全 View 时,项目 2 处于局部 View (左)

最佳答案

好的,我已经按如下方式完成了;

我的案例坚持使用 288x180 的项目大小

1/。设置项目大小

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
return CGSizeMake(288, 180);
}

2/。设置 insetForSectionAtIndex

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(nonnull UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{
//top, left, bottom, right
return UIEdgeInsetsMake(0, 16, 0, 16);
}

3/。设置minimumInteritemSpacingForSectionAtIndex保证间距

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section 
{
return 5;
}

4/。创建单元 ID 时执行以下操作;

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewCell* cell = [self.collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([UICollectionViewCell class]) forIndexPath:indexPath];

if (!cell)
{
cell = [self.collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([UICollectionViewCell class]) forIndexPath:indexPath];

cell.contentView.width = 288;
cell.contentView.backgroundColor = [UIColor whiteColor];

}

return cell;
}

5/。要正确实现分页效果确保 collectionView.paging = NO 和子类 UICollectionViewFlowLayout 使用 targetContentOffsetForProposedContentOffset 正确设置 ScrollView 偏移

不确定这是否是最好的方法,但它给了我想要的结果..

关于ios - 横向 UICollectionView 单行布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34300895/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com