我正在使用 Xcode 6.0 beta 4,我发现按钮 UICollectionViewCell 不是对点击的响应。

详情如下:

UICollectionViewController

--- UICollectionViewCell

------ UIButton (UIButton 有两个 autolayout 限制条件 UIButton 在垂直中心和水平中心 Cell )

现在使 cell 大小是这样的:(300, 1000)

在iPhone模拟器或iOS 7.0或7.1.x的设备中运行应用程序,按钮不可触摸,但在iOS 8.0模拟器中测试可以。另外如果我换手机 size(300, 200), ,按钮起作用。

我认为这是 Xcode beta 版本中的一个错误,对吗?

我可以在哪里向 Apple 发送错误?

有帮助吗?

解决方案

他们忘记为 UICollectionViewCell 的 contentView 设置 autoresizingMask

这个修复它

self.contentView.autoresizingMask = UIViewAutoresizingFlexibleHeight |    UIViewAutoresizingFlexibleWidth;

其他提示

看来这实际上并不是一个错误,而是使用 Xcode 6 定位 iOS 7 设备的不兼容问题。 生态税的帖子 对此进行了更详细的描述,但以下是 Apple DTS 的响应:

在 iOS 7 中,单元格的内容视图通过自动调整大小蒙版自行调整大小。在 iOS 8 中,这一点发生了变化,单元格停止使用自动调整大小蒙版,并开始在layoutSubviews 中调整内容视图的大小。如果笔尖在 iOS 8 中编码,然后在 iOS 7 上解码,您将获得一个没有自动调整大小掩码的内容视图,也没有其他方法可以调整自身大小。因此,如果您更改单元格的框架,内容视图将不会跟随。

部署回 iOS 7 的应用程序必须通过调整内容视图本身的大小、添加自动调整大小蒙版或添加约束来解决此问题。

Alexey 上面的解决方案可以解决这个问题:

- (void)awakeFromNib
{
   // Fix for iOS 7 devices targeted using Xcode 6.
   self.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top