Ios Autolayout抱怨UIImageView的前导/尾随空间不足
我在故事板中有一个UICollectionViewCell,里面有一个UIImageView UICollectionViewCell大小为宽度:189,高度:239。ImageView具有以下约束:Ios Autolayout抱怨UIImageView的前导/尾随空间不足,ios,objective-c,swift,storyboard,Ios,Objective C,Swift,Storyboard,我在故事板中有一个UICollectionViewCell,里面有一个UIImageView UICollectionViewCell大小为宽度:189,高度:239。ImageView具有以下约束: Trailing Space to cell = 31 Leading Space to cell = 31 Bottom Space to cell = 25 Top Space to cell = 31 我在运行时收到以下错误: 2014-11-28 19:53:33.934 AppNam
Trailing Space to cell = 31
Leading Space to cell = 31
Bottom Space to cell = 25
Top Space to cell = 31
我在运行时收到以下错误:
2014-11-28 19:53:33.934 AppName[1585:35698]无法访问
同时满足约束条件。可能至少有一个
下面列表中的约束是您不想要的约束。试试这个:(1)
看看每一个约束,试着找出你不期望的;
(2) 查找添加不需要的约束的代码
把它修好。(注意:如果您看到
NSAutoresizingMaskLayoutConstraints如果您不了解,请参阅
指向UIView属性的文档
翻译自动调整大小(从皮肤到肌肉)(
“”,
"",
"" )
将尝试通过打破约束进行恢复
NSLayoutConstraint:0x7fa4a0d75220
H:[UIImageView:0x7fa4a0d743e0]-(31)-|(名称:
“|”:UIView:0x7fa4a0d73d40)>
在UIViewAlertForUnsatifiableConstraints处创建符号断点
要在调试器中捕获此信息。研究方法
中列出的UIView上的UIConstraintBasedLayoutDebugging类别
也可能有帮助
我尝试了各种方法(尝试了偶数/奇数)更改前导/尾随值,但没有成功。这是什么原因造成的?这是iOS 8中的一个已知错误(请参阅本文)。单元的大小与您在故事板中设置的大小相同,但单元内容视图的大小保持在50x50,这就是为什么会出现约束错误。可以通过在cellForItemAtIndexPath中创建单元格后添加此行来修复此问题:
cell.contentView.frame = cell.bounds
这是iOS 8中的一个已知错误(请参阅本文)。单元的大小与您在故事板中设置的大小相同,但单元内容视图的大小保持在50x50,这就是为什么会出现约束错误。可以通过在cellForItemAtIndexPath中创建单元格后添加此行来修复此问题:
cell.contentView.frame = cell.bounds
它是否向您显示约束列表并告诉您它试图打破哪一个约束?如果是这样,请发布该信息。更新后的问题,stackoverflow的格式设置导致某些文本不出现。最后一个约束是,视图UIView:0x7fa4a0d73d40(可能是您的单元格)的宽度为50。您在集合视图的数据源中返回的单元格大小是多少?奇怪的是,我没有在任何数据源方法中修改单元格的大小,我只在情节提要中设置了单元格的宽度/高度。我使用
self.collectionViewController.view.frame=CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height)
将collectionView添加到VC中,如果这会产生影响的话。我只实现func collectionView(collectionView:UICollectionView,cellForItemAtIndexPath:NSIndexPath)->UICollectionViewCell{func collectionView(collectionView:UICollectionView,numberOfItemsInSection节:Int)->Int{func collectionView(collectionView:UICollectionView,didSelectItemAtIndexPath indexPath:NSIndexPath){
它是否向您显示约束列表并告诉您它试图打破哪一个约束?如果是,请发布该信息。更新的问题,stackoverflow的格式导致某些文本未出现。最后的约束是,视图UIView:0x7fa4a0d73d40(可能是您的单元格)的宽度为50。您返回的f大小是多少或者集合视图数据源中的单元格?奇怪的是,我没有在任何数据源方法中修改单元格的大小,我只在情节提要中设置了单元格的宽度/高度。我使用self.collectionViewController.view.frame=CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height)将集合视图添加到VC中
如果这有区别的话。我只实现func collectionView(collectionView:UICollectionView,cellForItemAtIndexPath indexPath:NSIndexPath)->UICollectionViewCell{func collectionView(collectionView:UICollectionView,NumberOfItemsSection:Int)->Int{func collectionView(collectionView:UICollectionView,didSelectItemAtIndexPath indexPath:NSIndexPath){
谢谢,值得注意的是,尽管运行了iOS8.1.1,但这在iOS 9.3.4中仍然存在。谢谢,值得注意的是,尽管运行了iOS8.1.1,这在iOS 9.3.4中仍然存在