UICollectionView 具有项目间间距的水平滚动

2023-11-23

我正在对我的一些图像使用集合视图。

每个图像应以屏幕大小显示,因此一个单元格具有屏幕宽度。这minimumInterItemSpacingflowLayout 的值为 25。 所以现在的问题是,如果我滚动,集合视图不会滚动到下一个图像的开头,而是滚动到 interItemSpacing 的开头。

让我们举个例子:

Image/Cell width = 320
CollectionView's interItemSpacing = 25

如果我滚动一页,滚动视图内容偏移量为 320,而不是 345,这意味着第二个单元格不在屏幕中心。

如何解决这个问题?有什么建议么?


好吧,我发现有两个选项可以实现正确的滚动。

1. UICollectionViewController size

通过准确添加所需的值作为 interItemSpacing 来增加集合视图及其项目的大小。

这是一些代码:

- (void) setupCollectionView;
{
    PSTCollectionViewFlowLayout *flowLayout = [[PSTCollectionViewFlowLayout alloc] init];
    CGSize itemSize = self.view.bounds.size;
    itemSize.width +=25;
    [flowLayout setItemSize:itemSize];
    [flowLayout setScrollDirection:PSTCollectionViewScrollDirectionHorizontal];
    flowLayout.minimumInteritemSpacing = 0.0f;
    flowLayout.minimumLineSpacing = 0.0f;

    self.collectionView = [[PSTCollectionView alloc] initWithFrame:self.view.bounds
                                          collectionViewLayout:flowLayout];
    [self.collectionView registerClass:[AMDetailImageCell class]
        forCellWithReuseIdentifier:AMDetailImageCellIdentifier];
    self.collectionView.delegate = self;
    self.collectionView.dataSource = self;
    self.collectionView.pagingEnabled = YES;
    CGRect rectSize = self.view.bounds;
    rectSize.size.width +=25;
    self.collectionView.frame = rectSize;
    [self.view addSubview:self.collectionView];

    [self scrollToStartIndex];

}

2. SectionEdgeInset

使一页=一个部分并使用sectionEdgeInset会产生相同的解决方案,但-当然-并不总是一种选择!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UICollectionView 具有项目间间距的水平滚动 的相关文章

  • 如何使用 iPhone SDK 实现可滑动的图像堆栈(例如照片应用程序)?

    我想获取一堆图像 或者可能是一组用于下载图像的 URL 并以全屏方式显示它们 一次一个 使用 iPhone SDK 使用用户滑动来平滑地为堆栈中的下一个图像设置动画 Apple 的 Photo app 似乎可以做到这一点 此外 如果尚未检索
  • 使用 iOS 8 自定义键盘发送图像?

    我一直在为 iOS 8 开发自定义键盘 但在尝试使用键盘发送图像时偶然发现了一个问题 我做了一些研究 似乎没有一种简单的方法可以做到这一点UITextDocumentProxy因为只有NSStrings被允许 我是否忽略了使用自定义键盘发送
  • 从 UIImagePickerController 相机视图推送 viewController

    我正在开发一款消息应用程序 类似于 WhatsApp 用户可以互相发送文本和图像消息 当用户想要发送图像时 他可以从相机胶卷中选择一张图像 也可以用相机拍摄一张图像 这就是我介绍的方式UIImagePickerController对于这两种
  • 本地化现有的 iOS 应用程序

    我不敢相信以前没有人问过这个问题 要么是我的编码实践太无组织性 要么是我没有使用正确的关键字 How can I localize an existing iOS app that does not use NSLocalizedStrin
  • 如何知道用户何时更改设置包

    我让用户在 iPhone 的设置区域中更改他们的设置 在下一次网络同步期间 我想将用户更改发送到服务器 但前提是做出改变 但是我如何知道用户何时在设置区域中进行了更改 如果可以的话 我想避免选择总是发送信息 无论是否更改 或者首先从服务器获
  • 打乱 NSMutableArray 而不重复并显示在 UIButton 中

    在我看来 我有 12 个按钮 一个数组包含 6 个名称 我想在其中打印数组名称UIButton标题 这是我的代码 texts NSMutableArray alloc initWithObjects 1 2 3 4 5 6 nil UIBu
  • 网站在 iPhone 屏幕右侧显示空白区域

    我遇到问题http eiglaw com http eiglaw com iPhone 屏幕右侧显示约 25 像素宽的空白 边框 我在 stackoverflow 上研究了这个问题 这些帖子是相关的 但是当我尝试提供的各种解决方案时 我无法
  • XCode 无法将 iPhone 应用程序部署到 iPhone 3GS

    因此 我构建了我的 iPhone 应用程序 它在模拟器中运行良好 因此我想将其部署到我的 iPhone 上进行最后一轮测试 然后再使用我的分发配置文件进行公开 Beta 测试 我已经这样做过很多次了 从来没有出现过问题 然而 自从上次测试运
  • 持久化 UINavigationItem 的 rightBarButtonItem 属性

    这可能是一个愚蠢的问题 但是有可能保持正确的吗 UIBarButtonItem跨由一个管理的多个视图UINavigationController 我的一系列观点通常具有相同的权利UIBarButtonItem 但是当我将新视图推送到我的UI
  • GeoFire Swift 3 - 保存和更新坐标

    我正在尝试使用 GeoFire 将坐标存储到 Firebase 数据库中 我不确定如何更新新坐标 因为它们每秒都会更改 更新 随着childByAutoId 它正在为每辆自行车生成一个新的唯一 ID 如何引用这个唯一的自行车 ID 例如 用
  • 是否可以使用 Firebase 安排推送通知? [复制]

    这个问题在这里已经有答案了 我已经阅读了我能找到的所有文档 但仍然不知道这是否可行 如果我是用户 我可以安排特定时间的推送通知吗 Example 1 我是用户并打开应用程序 2 我允许通知并转到 pickerView 或其他任何内容 并设置
  • 更改组织以使用 Xcode 9 在 iTunes Connect 上上传二进制文件

    我在 Xcode9 上配置了多个团队 当我尝试将二进制文件上传到 Xcode 9 上的 iTunes Connect 时 没有更改团队的选项 并且出现以下错误 ERROR ITMS 4088 来自苹果开发者论坛的解决方案 1 正常存档2 窗
  • 如何在 React Native 中构造 POST 请求主体,而不是使用字符串化的 json,而是使用 json?

    我正在努力用 React Native 替换一些本机代码 预期的 POST 请求 在AFNetworking in Charles应该是这样的 代码片段 NSError err NSData paramData NSJSONSerializ
  • 将 Firebase 云消息传递与 Windows 应用程序结合使用

    我在 Android 和 iOS 应用程序中使用 Firebase Cloud Messaging 但是我还有此应用程序的 Windows Mac OS 版本 我想保留相同的逻辑 我知道 Firebase Cloud Messaging 可
  • 以编程方式使用 Stack Overflow 进行身份验证

    我想在我的 iPhone 应用程序中添加赞成和反对投票 MyStacks http itunes apple com gb app mystacks id360030953 mt 8 为此 我需要能够使用 Stack Overflow 对用
  • 根据 iOS 版本使用不同的类实现?

    iOS 11 最近添加了一个我想使用的新功能 但我仍然需要支持旧版本的 iOS 有没有一种方法可以将同一个类编写两次 并让较新版本的 iOS 使用该类的一个版本 而旧版本的 iOS 使用另一个版本 注 最初我用的是if available
  • 加载新控制器时,iPhone 横向模式切换到纵向模式

    我的应用程序在横向模式下正确启动并且运行良好 BOOL shouldAutorotateToInterfaceOrientation UIInterfaceOrientation interfaceOrientation if interf
  • PFQueryTableViewController 错误

    我正在遵循在线教程 使用 Parse 作为后端创建照片共享应用程序 我已经运行了两次教程 两次都从头开始创建应用程序 但在同一位置仍然出现相同的错误 我到处寻找解决方案 但仍然没有运气 我正在使用 PFQueryTableViewContr
  • UIView晃动动画

    我试图在按下按钮时使 UIView 摇动 我正在调整我找到的代码http www cimgf com 2008 02 27 core animation tutorial window shake effect http www cimgf
  • iOS - UITableViewCell 使文本加粗

    我有一个字符串 NSString userInfo James Johnson james 我想做的就是大胆James Johnson并保留 james正常字体 所以我尝试过的是使用NSAttributedString但为了完成这个过程 我

随机推荐

  • 使用 ADAL.js 获取的令牌对 Azure 移动服务应用程序进行身份验证

    我正在尝试针对 Azure 移动服务应用程序对 HTML 应用程序进行身份验证 设置 两个应用程序都使用 AAD 作为身份验证后端 因此两个应用程序都有一个在 Active Directory 中注册的应用程序 Azure 移动服务应用程序
  • 使用 SBT 复制文件

    我正在使用 SBT 构建 java 项目 并且需要复制文本文件 不是资源 而是由 java 类用来读取 我对 SBT 或 Scala 都没有经验 build scala 文件需要 任何帮助将非常感激 例如 如果我的目录结构是 test fi
  • 如何检查消息(postMessage)来自哪个跨域 iframe?

    我知道MessageEvent has source属性是发送消息的窗口对象 现在如何让这些信息检查主文档中的哪个 iframe 当然还有消息到达时的主文档中 是该特定消息的来源 是唯一可用的选项来检查location href on th
  • android 是否重用从资源加载的图像?

    因此 我在一个 Activity 中有多个 ImageView 并且它们都使用资源中的相同图像位图 ImageViewOne setImageResource R drawable frequently used image ImageVi
  • std::tuple 的重载运算符 << - 可能的简化?

    I used SO问题 迭代元组 的答案编写一个方法来重载 lt lt 此方法经过测试 似乎可以正确使用g 4 7在 Debian 挤压上 然而这种方法有点迂回 因为它看起来 lt lt 无法显式实例化 我找到了一篇关于它的帖子here 因
  • 获取所选 primefaces 数据表行的行号

    我有一个 primefaces 数据表 需要在 JSF 页面中显示 总行数 的 所选行号 我可以使用 rowIndexVar 属性在其中一列中显示行号 但我不知道要显示在行选择的输入文本中分别使用相同的数字 我应该在 JSF 页面或托管 b
  • from utils import label_map_util 导入错误:没有名为 utils 的模块

    我正在尝试运行object detection ipynb输入program 但它是一个普通的python程序 py 它工作得很好 但是当在内部运行时 models research object detection文件夹 但主要问题是当我
  • 如何修复由于 libmysqlclient.15.dylib 未加载而导致的错误?

    我已经升级到 Rails 2 2 2 并安装了 MySQL 2 7 gem 当我尝试运行迁移或启动服务器时看到此错误 dlopen Library Ruby Gems 1 8 gems mysql 2 7 lib mysql bundle
  • 定义和声明有什么区别?

    我不明白两者的含义 A 宣言引入标识符并描述其类型 无论是类型 对象还是函数 声明是编译器需要什么接受对该标识符的引用 这些是声明 extern int bar extern int g int int double f int doubl
  • 检测ajax请求中的重定向?

    我想使用 jQuery 获取 URL 并显式检查它是否响应 302 重定向 但是not按照重定向 jQuery 的 ajax似乎总是遵循重定向 如何防止这种情况发生 并在不遵循重定向的情况下查看重定向 有各种标题为 jquery ajax
  • 如何通过c:set将参数传递给jsp:include? JSP中变量​​的作用域是什么?

    我在welcome jsp上有这个
  • CLLocationManager 委托方法未被调用

    我在用CLLocationManager班级 我有一个简单的类方法来捕获位置 void captureLocation mLocationManager CLLocationManager alloc init mLocationManag
  • AngularJS 压缩 $http post 数据

    我正在创建一个 Ionic 应用程序 需要将大量数据发送到用 php 编写的服务器 我正在寻找一种方法来压缩我发布的数据以加快我的应用程序的速度 我不确定什么是最好的方法 我尝试过LZString但 compressToEncodedURI
  • 在主机上启用 system() 和 exec() 函数?

    我是一名开发人员 我在服务器上构建客户端站点 然后在完成后使用 PHP 脚本将其克隆到客户端服务器 我这次尝试了 但出现了错误 您的主机不允许使用 system 和 exec 功能 知道如何启用此功能吗 我有 cpanel 访问权限 主机帐
  • 在 MVC 5 Razor 视图中调用 JavaScript 函数

    我在另一篇文章中看到 您可以在 razor 代码中调用 JavaScript 函数 如下所示 FunctionName 对我来说 虽然这只输出实际的单词FunctionName 这是我的观点 model PriceCompare Model
  • 禁用鼠标提升

    有没有办法从代码中禁用鼠标升级 从而防止窗口将触摸事件解释为鼠标事件 我在 WPF 应用程序中捕获触摸事件 并且我不希望这些交互影响鼠标指针的可见性和位置 有一个TouchFrameEventArgs SuspendMousePromoti
  • 在运行时调整 QDialog 的大小

    I have a QDialog subclass containing some options of my application Some of the options are core the other are advanced
  • 动态添加可折叠元素

    Source http jquerymobile com demos 1 0a2 docs content content collapsible html当我手动将这样的元素添加到我的代码中时 它会正确显示 但是当我尝试用 jQuery
  • 基于 JSON 模式中枚举值的属性

    我正在构建一个 json 模式定义 它有一组固定的控件 我目前用enum 但是 并非所有属性都与所有控件相关 我只想要求一个options财产如果controlType dropdown schema http json schema or
  • UICollectionView 具有项目间间距的水平滚动

    我正在对我的一些图像使用集合视图 每个图像应以屏幕大小显示 因此一个单元格具有屏幕宽度 这minimumInterItemSpacingflowLayout 的值为 25 所以现在的问题是 如果我滚动 集合视图不会滚动到下一个图像的开头 而