IOS集合查看布局问题

时间:2014-09-19 07:29:43

标签: ios ios7 uicollectionview ios8 uicollectionviewcell

所以,最好发布图片以理解

IOS 8 IOS 7.1 IOS 7.0 IN storyboard

我没有在这里使用任何约束,因为当我开始使用约束时,会抛出约束警告。我在故事板(159/50)中设置单元格的大小,最小间距为1,并且还在代码

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
    return CGSizeMake(159, 50);
}

此外,我在collectionview,collectionviewcell,单元格中的视图和按钮中设置“剪辑子视图”,视图为NO,以查看视图的放置位置。 “Autoresize subviews”没有做任何事情,我已经检查过了。每个视图的模式设置为“Scale to Fit”单元格的大小可以是默认的或自定义的,这也没有意义。

那么,为什么会这样呢?我花了2天时间。请帮忙。


我还附上了约束的截图。

我在UIView内部单元格中设置了顶部,底部,前导和尾随约束,并在此UIView中设置了UILabel。

ios 8 ios 7.1 ios 7.0

但在这种情况下,我在每台设备上都出现了约束错误:

(
    "<NSLayoutConstraint:0x7fd0834b0b10 H:[UIButton:0x7fd0834b0140'Button']-(0)-|   (Names: '|':UIView:0x7fd0834b0050 )>",
    "<NSLayoutConstraint:0x7fd0834b0b60 H:|-(35)-[UIButton:0x7fd0834b0140'Button']   (Names: '|':UIView:0x7fd0834b0050 )>",
    "<NSLayoutConstraint:0x7fd0834b0dd0 H:|-(20)-[UIView:0x7fd0834b0050]   (Names: '|':UIView:0x7fd0834aff60 )>",
    "<NSLayoutConstraint:0x7fd0834b0e70 H:[UIView:0x7fd0834b0050]-(19)-|   (Names: '|':UIView:0x7fd0834aff60 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x7fd0834b27c0 h=--& v=--& H:[UIView:0x7fd0834aff60(50)]>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x7fd0834b0b10 H:[UIButton:0x7fd0834b0140'Button']-(0)-|   (Names: '|':UIView:0x7fd0834b0050 )>

我认为发生此错误是因为单元格大小未正确设置,在我的情况下,它设置为默认值50x50,我已经检查了这个。

安装xcode 6后发生了所有这些问题。


有趣的是:当我使用UICollectionViewController而不是带有UIViewController的{​​{1}}并且需要代理时,我的应用程序正常运行。


1 个答案:

答案 0 :(得分:1)

您必须在自定义单元格类中添加以下代码:

-(void)awakeFromNib
{
    [super awakeFromNib]; 
    self.contentView.frame = self.bounds;
    self.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
}

Autoresizing issue of UICollectionViewCell contentView's frame in Storyboard prototype cell (Xcode 6, iOS 8 SDK) happens when running on iOS 7 only

中找到解决方案