【问题标题】:UICollectionview with IBOutlet-UIButtons not working带有 IBOutlet-UIButtons 的 UICollectionview 不起作用
【发布时间】:2015-08-08 07:32:09
【问题描述】:

我有一个为期两天的脑残问题要问大家:

我使用 UICollectionView(一行,水平滚动,固定数量的 9 个项目)在我的应用程序中集成了一个菜单。每个单元格都有自己的标签,并使用自己的原型单元格和自己的标识符。在 cellForItemAtIndexPath 期间,我为每个单元分配了一个原型单元(原型单元包含情节提要中的特定 UIButton)。如果您单击一个单元格(相对于 UIButton),则应该打开一个弹出框(这工作得很好,因为弹出框被锚定到集合视图而不是单元格 - 否则 Xcode 将给出错误,因为出口绑定到重复内容.)。现在回答问题:

  1. 根据弹出窗口中选择的值,按钮的名称 (titleLable.text) 应更改。我认为,需要一个 IBOutlet,但不可用,因为可能(但未发生)多次(重)使用单元格。

  2. APP 中的一些其他操作可能会随机发生,这会更改按钮的标签。因此,我认为也需要一个 IBOutlet。

我试图给原型一个特定的标签,但这个(在我看来)不能使用,因为在加载过程中我无法将标签分配给 UIButton,因为并非所有单元格都是可见的,因此无法访问在 viedDidAppear...

感谢任何帮助。这是一个老问题的新尝试,直到昨天的 collectionView 看起来很有希望。有什么想法可以帮忙吗?非常感谢。我不能给出代码,因为 90% 的工作都是在 IB 中完成的。

【问题讨论】:

    标签: ios objective-c uibutton uicollectionview iboutlet


    【解决方案1】:

    您可以使用 NSNotificationCenter 将消息从您的 UIPopoverController 发送到 UICollectionViewCell。

    Send and receive messages through NSNotificationCenter in Objective-C?

    只需将UICollectionViewCell 子类化为MyCollectionViewCell 并在UICollectionView 中使用您的子类。

    MyCollectionViewCell-(void)initWithFrame:(CGRect)frame 方法中,您应该以观察者身份订阅NSNotificationCenter,并在dealloc 中取消订阅。

    您的所有单元格都可能收到通知并对其做出反应。 这不是接收回调的最佳方式,但可能是最简单的方式。

    【讨论】:

      猜你喜欢
      • 2011-11-30
      • 1970-01-01
      • 2019-11-04
      • 2015-03-23
      • 1970-01-01
      • 1970-01-01
      • 2014-06-22
      • 2018-03-26
      • 2013-06-13
      相关资源
      最近更新 更多