【问题标题】:IOS collection view layout problemsIOS集合视图布局问题
【发布时间】:2014-11-13 17:39:09
【问题描述】:

所以,最好贴图来理解

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

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

我还设置了 "Clip Subviews" 在collectionview、collectionviewcell、单元格中的视图和视图中的按钮以查看视图的放置位置。 “自动调整子视图” 没有做任何事情,我已经检查过了。每个视图的模式设置为“缩放以适应”单元格的大小可以是默认的或自定义的,这也没有意义。

那么,为什么会发生这种情况?我在这上面花了 2 天时间。请帮忙。


我还附上了带有限制条件的屏幕截图。

我在单元格内的 UIView 和此 UIView 内的 UILabel 上设置了顶部、底部、前导和尾随约束。

但在这种情况下,我在每个设备上都遇到了约束错误:

(
    "<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 和内部的 UICollectionView 并打开所需的代表时,我的应用程序正常工作。


【问题讨论】:

标签: ios ios7 uicollectionview ios8 uicollectionviewcell


【解决方案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

【讨论】:

  • 请为您的答案添加一些解释。简单地发布代码和链接并不能给出好的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-02
相关资源
最近更新 更多