我无法找到一种方法来使自动布局约束感到满意

时间:2015-06-24 21:11:27

标签: ios xcode6 autolayout nsautolayout

我正在尝试制作这种简单的布局:

enter image description here

这只是一个简单的UICollectionViewCell

但是当我把所有需要的汽车布局限制时,我得到了这个警告:

NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSLayoutConstraint:0x17028dd40 H:[UIImageView:0x13fd3b000(48)]>",
    "<NSLayoutConstraint:0x17028e2e0 H:|-(8)-[UILabel:0x13fd3bfe0'Something as a title...']   (Names: '|':_UIVisualEffectContentView:0x13fd3ace0 )>",
    "<NSLayoutConstraint:0x17028e380 UILabel:0x13fd3bfe0'Something as a title...'.leading == UIImageView:0x13fd3b000.leading>",
    "<NSLayoutConstraint:0x17028e470 H:[UIImageView:0x13fd3b000]-(8)-[UILabel:0x13fd3b140'Lady Oracle']>",
    "<NSLayoutConstraint:0x17028e4c0 H:[UILabel:0x13fd3b140'Firstname Lastname']-(8)-|   (Names: '|':_UIVisualEffectContentView:0x13fd3ace0 )>",
    "<NSLayoutConstraint:0x17028e830 H:|-(0)-[UIVisualEffectView:0x13fe0ebd0]   (Names: '|':UIView:0x13fe142d0 )>",
    "<NSLayoutConstraint:0x17028e8d0 H:[UIVisualEffectView:0x13fe0ebd0]-(0)-|   (Names: '|':UIView:0x13fe142d0 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x17428ee70 h=-&- v=-&- _UIVisualEffectContentView:0x13fd3ace0.width == UIVisualEffectView:0x13fe0ebd0.width>",
    "<NSAutoresizingMaskLayoutConstraint:0x17028fd20 h=--& v=--& H:[UIView:0x13fe142d0(50)]>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x17028dd40 H:[UIImageView:0x13fd3b000(48)]>

从日志中可以推断,我有以下约束:

  • 底部容器视图:底部,前导和尾部与超级视图对齐
  • 标题:容器视图的顶部,前导和尾随间距。底部间距用户头像
  • 用户头像:具有特定尺寸(宽度和高度),与标题水平对齐,与标题的垂直间距,容器的底部空间。
  • 用户名:顶部与用户头像对齐,与用户头像之间的间距,尾随与容器的间距。

我似乎没有足够的限制来制作我想要的布局并摆脱警告。不过,布局正如预期的那样出现。

1 个答案:

答案 0 :(得分:0)

我能想到两件事:

  1. 您忘记使用..

    设置视图
    [view setTranslatesAutoresizingMaskIntoConstraints:NO];
    
  2. 当集合视图尝试布局时,您的collectionView单元格大小。