问题标签 [uicollectionviewdelegate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
44 浏览

ios - 未选择自定义 CollectionView 单元格,但在单元格空间之外注册选择

查看示例

在上面的示例中,单击蓝色单元格不会触发任何 collectionView 委托方法,例如“didSelectItem”。但是直接点击左侧的剩余空白区域会。它是一个自定义单元格,基本上只有文本视图位于带有蓝色背景的 UIView 之上。这是预期的行为吗?

0 投票
2 回答
4402 浏览

ios - 如何在 swift 4 中设置对 collectionView 的关注?

你好我有一个UICollectionView。在一个特定的单元格中,我有许多视图,例如、UserProfileView等。在一个文本视图中,用户可以键入然后发表评论。发表评论后,我想关注那个特定的单元格,用户从哪个单元格发布了评论。为此,我使用了:ProductViewCommentBoxViewCommentBoxView

我正在使用硬编码值进行测试,但它仍然没有到来。请任何人帮助我解决这个问题。

0 投票
2 回答
3009 浏览

ios - 如何在swift 4中滚动到集合视图中的特定索引?

我已经搜索了与此问题相关的各种链接,但无法解决此问题,这就是我发布此问题的原因。我有一个collectionView. 在一个特定的单元格中,我有许多视图,例如UserProfileViewProductViewCommentBoxView等。在CommentBoxView中有一个textView,用户可以在其中键入然后发表评论。发布评论后,我想滚动那个特定的单元格,用户从哪个单元格发布了评论。我知道我必须使用self.collectionView.scrollToItem(at:IndexPath(item: indexNumber, section: sectionNumber), at: .right, animated: false)

这是代码,

但我的问题是:

  1. 我必须在哪里编写此代码?在视图中确实出现了?还是在评论帖子功能中成功是真的?
  2. 如何将 indexNumber 和 sectionNumber 传递给

    self.collectionView.scrollToItem(at:IndexPath(item: indexNumber, section:sectionNumber)

请任何人帮助我解决这个问题。谢谢

0 投票
1 回答
685 浏览

ios - Swift 4 中的 UICollectionViewController 未调用 cellForItemAt 函数

它看起来很基本,但我不能让它在 Swift 4 中工作。

所以我有以下 UICollectionViewController 的实现

虽然... numberOfItems ...方法被调用,但 for... cellForItemAt indexPath ...没有。

我错过了什么?

这是单元格的代码

另外,我没有使用故事板,所以我在AppDelegate课堂上按如下方式实例化这个控制器:

0 投票
1 回答
727 浏览

ios - 如何将新的 UICollectionViewController 推送到单元格单元格内的 navigationController

我以编程方式构建了一个 UICollectionViewController,它返回 4 个单元格。HomeCell、TrendingCell、SubscriptionCell 和 AccountCell。所有 4 个单元格都应该不同,您可以水平滚动它们。<--->。

让我们以 HomeController 的第一个单元格 HomeCell 来说明我的问题。Homecell 具有三个自定义单元,分别称为 VideoCell、CategoryCell 和 UserSearchCell。

在 HomeCell 中,我将 UserSearchCell 注册为第三个单元格。

如果我单击该元素,我的目标是将一个新的 ViewController 推送到 navigationController。但我无权访问,也不知道如何更改该嵌套结构中的视图。我尝试了 HomeCell 类中的 didSelectItem 方法,并且能够在单击第三个单元格时在控制台打印一些内容,但无法更改视图。

请帮忙。有没有办法在 HomeCell 的 didSelectItem 方法中更改视图?

0 投票
0 回答
169 浏览

ios - 特定项目设置的 JTAppleCalendar 委托方法为零

我在我的应用程序中使用JTAppleCalendar库。func calendar(_ calendar: JTAppleCalendarView, didSelectDate date: Date, cell: JTAppleCell?, cellState: CellState)一周前,当我停止在 App Store 版本中工作但它在当前的开发分支中工作时,我遇到了一个奇怪的问题。

经过快速研究,我发现唯一改变的是FBSDKCoreKitFBSDKLoginKitcocoapods 版本 - 4.34.0。所以我决定更新他们的版本4.38.1并解决了一个问题。

不幸的是,我只能在具有其他库、VIPER 架构的项目(这是商业项目)中重现此问题,并且出于明显的原因我无法分享它。

但是我不认为豆荚会导致这样的问题,所以我正在尝试调查可能导致此类问题的原因。几个小时后,我发现delegateofUICollectionView为零,这就是为什么didSelectItemAt没有响应。

我只是通过在之后放置断点来检查它

InternalActionFunctions.swift文件中并且super.delegatenil.

在此处输入图像描述JTAppleCalendarVariables.swift文件中,我发现作者使用delegatedataSource一个代码将变量设为私有

评论此代码解决了我的问题,delegate分配了价值并且一切正常。

所以我的问题是,在某些情况下方法有效而在其他情况下无效时,上述代码如何导致如此奇怪的问题didSelectItemAt?或者也许我走错了路,这根本不是理由?

0 投票
1 回答
306 浏览

swift - 从多个 UICollectionVIews 内的 UICollectionViewCell 推送新的 UICollectionViewController

我真的尽我所能找到解决这个问题的方法。我尝试了使用委托和协议的不同解决方案,但我的代码不起作用。在抱怨我的问题之前,请支持我,让我们作为一个社区工作。如果您不理解我的问题或需要其他信息,请告诉我。我仍然可以更改问题或添加其他信息。我真的需要帮助。感谢社区。

场景 I 一切正常:

我创建了一个UINavigationController,其中包含一个名为 HomeController 的 UICollectionViewController 作为 rootViewController HomeController包含一个名为CustomCell的自定义UICollectionViewCell。如果我单击其中一个CustomCells ,则会执行 HomeController 类的didSelectItem方法。此方法将新的UICollectionViewController推送到UINavigationController。代码工作正常。这是我的代码的骨架:

关于场景 II 和 III,我真的需要你的帮助。

场景二:

我创建了一个UINavigationController,其中包含一个名为MainController的UICollectionViewConrollerMainController包含四个不同的自定义单元格(CustomCell1、CustomCell2、CustomCell3、CustomCell4)。单元格是水平可滚动的,每个单元格的宽度和高度占据整个 collectionview。 在此处输入图像描述

CustomCell1CustomCell2CustomCell3CustomCell4包含一个collectionView,它采用整个单元格的宽度和高度

例如:CustomCell1的 collectionView包含 3 个单元格。collectionView 的第一个单元格有两个按钮Button1Button2。如果我单击Button2,我希望同一 collectionView中的cell2cell3的内容发生变化。问题 1:在那种情况下,您如何实现这一目标?带有我的构造的代码示例将非常非常有帮助。 在此处输入图像描述

如上所述,CustomCell2还有一个collectionView,它取Cell 的整个宽度和高度。CustomCell2的collectionView包含三个CustomCell。第一个和第二个 CustomCells 有一个 collectionView ( cell.indexPath == 0 cell.indexPath ==1 )。

第一个collectionView(位于第一个单元格内)有四个customCells。如果您单击其中一个单元格,我希望将新的UICollectionViewController推送到UINavigationController问题 2:如何使用委托和协议来做到这一点?

第二个collectionView(位于第二个单元格内)也有四个customCells。如果您单击其中一个 customCell,则任务不是将新的UICollectionView推送到 NavigationController,而是更改 cell3 的内容 问题 3:我怎样才能实现这一点,有人可以用我提供的骨架给我一个例子吗?

在此处输入图像描述

0 投票
1 回答
469 浏览

ios - UICollectionViewCell 重用导致不正确的 UISwitch 状态

我无法找到解决此问题的方法。我在UISwitch里面使用UICollectionViewCell,我正在传递一个布尔变量来设置开关。

条件是所有单元中一次只有一个开关必须打开。但是当我打开一个开关时,另一个随机开关的色调会发生变化,这意味着它的状态发生了变化。

默认情况下,故事板中的开关状态为 ON,即使我将其设置为 OFF,也没有任何变化。

我不明白为什么会这样。

这是我的代码cellForItemAtIndexPath

以及单元类的代码

数据源包含DiscountModel如下所示的对象:

单元类中的开关值更改方法:

视图控制器类中的委托方法:

0 投票
4 回答
1660 浏览

ios - UICollectionViewCell 宽度大于我在 sizeForItemAt 中设置的宽度

我的宽度/高度UICollectionView匹配所有可用空间。

我想在一行中显示两个单元格(两列)

所以一个单元格的宽度应该是UICollectionView( collectionView.frame.width / 2)的一半宽度

所以我以编程方式改变单元格的宽度UICollectionViewDelegateFlowLayout

但单元格的视觉宽度远大于collectionView.frame.width / 2.0(在 iPhone SE 模拟器上测试)

所以它需要超过屏幕的半角空间

在这里,我打印了有关尺寸的信息:

didSelectItemAt 单元格宽度 187.5,表格宽度:375.0,半宽度:187.5

在此处输入图像描述

为什么会这样?

边距也有问题,但首先我必须解决这个问题

更新

虽然它适用于 iPhone 6s 模拟器(我编辑图像以将两个项目放在第一行以检查它们是否适合):

在此处输入图像描述

那么 iPhone SE 有什么问题呢?

我不想发现其他 iPhone 或 iPad 也可能存在同样的问题

0 投票
1 回答
994 浏览

ios - 将 UIScrollView 委托和 UICollectionView 委托分配给同一个类

我有一个 paging UIScrollView,每个页面都填充了不同的视图控制器。滚动视图上方是一个UICollectionView用作菜单栏的。当您滚动滚动视图页面时,菜单栏会移动一点。您可以从左侧的 gif 中看到。

将他们的代表设置为不同的类可以让一切正常工作,如左边的 gif 所示。但是,将它们设置为同一类会破坏UICollectionViews 的行为。

如何将他们的代表设置为同一个班级?