【问题标题】:UICollectionViewCell with a button inside of itUICollectionViewCell 里面有一个按钮
【发布时间】:2013-08-30 10:37:55
【问题描述】:
我在界面构建器中设计了一个UICollectionViewCell,并带有一个链接到它的源文件的修饰操作。
视图类已正确设置为我的自定义子类UICollectionViewCell。插座在 Xcode 中正确可见。
问题是无论我如何尝试修复它都不会触发该操作。
我现在完全没有想法了。
我正在使用 Xcode5 DP6 和 iOS7。
最好的部分是一切正常,直到我决定为我的自定义单元格创建一个新界面并删除旧文件并创建一个新文件。我更新了所有连接和名称,但它不起作用。我还删除了 Xcode 中的 DerivedData 目录。
【问题讨论】:
标签:
ios
xcode
uikit
uicollectionview
uicollectionviewcell
【解决方案1】:
理想情况下,您应该有一个与单元格大小相同的自定义 UIButton(应该是一个填充了清晰颜色且没有标题的自定义按钮),然后将 IBAction 链接到您应用的 UIViewController。但是,您的按钮的 IBOutlet 应该是 UICollectionViewCell 子类中的指针。通常,要确定是哪个单元格触发了这个,您需要将 UIButton.tag 设置为您设置单元格内容的 indexPath.row。它有效,我已经使用过很多次了。希望这会有所帮助!
【解决方案2】:
我在 iOS 7.1.2 上的 Xcode 6 beta 5 中看到了同样的问题,之前它在 Xcode 5.1.1 中也能正常工作。
感谢我的版本控制,我看到了这个小金块:
- <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="SCTutorialCell5" id="03V-Y4-Bha" userLabel="tutorial5" customClass="SCTutorialCell">
546
- <rect key="frame" x="1280" y="0.0" width="320"** height="568"/>
547
- <autoresizingMask key="autoresizingMask"/>
549
+ <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="SCTutorialCell5" id="T8L-AB-8Je" userLabel="tutorial5" customClass="SCTutorialCell">
550
+ <rect key="frame" x="0.0" y="0.0" width="50" height="50"/>
551
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
我在 UICollectionView 中插入了一个新的原型单元格,但测试版 Xcode 没有像其他所有单元格一样制作新单元格,而是将单元格框架设置为 {0,0,50,50},而它应该是 {1280,0 , 320, 568}
进入源代码(右键单击故事板 --> 查看为 --> 源代码)并修复 XML 对我有用。