【发布时间】:2017-07-17 10:35:03
【问题描述】:
我正在尝试手动添加约束;每次代码尝试添加 centerX 和 centerY 约束时,我都会遇到以下错误:
由于未捕获的异常“NSGenericException”而终止应用程序, 原因:'无法在视图上安装约束。是否有约束 从视图的子树之外引用一些东西?那是 非法的。约束: (活动)> 查看:>'
我检查了之前的多个问题,但没有任何帮助:/
谢谢
代码
[cell.contentView addSubview:imageView];
[cell.contentView addSubview:title];
title.translatesAutoresizingMaskIntoConstraints = NO;
imageView.translatesAutoresizingMaskIntoConstraints = NO;
NSLayoutConstraint *imageViewHeightConstraint = [NSLayoutConstraint
constraintWithItem:imageView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1.0
constant:[UIScreen mainScreen].bounds.size.width/8];
NSLayoutConstraint *imageViewWidthtConstraint = [NSLayoutConstraint
constraintWithItem:imageView
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:imageView
attribute:NSLayoutAttributeHeight
multiplier:1.0
constant:0];
NSLayoutConstraint *imageViewCenterXConstraint = [NSLayoutConstraint
constraintWithItem:imageView
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:[imageView superview]
attribute:NSLayoutAttributeCenterX
multiplier:1.0
constant:0];
NSLayoutConstraint *imageViewCenterYConstraint = [NSLayoutConstraint
constraintWithItem:imageView
attribute:NSLayoutAttributeCenterY
relatedBy:NSLayoutRelationEqual
toItem:[imageView superview]
attribute:NSLayoutAttributeCenterY
multiplier:1.0
constant:0];
[imageView addConstraint:imageViewHeightConstraint];
[imageView addConstraint:imageViewWidthtConstraint];
[imageView addConstraint:imageViewCenterXConstraint];
[imageView addConstraint:imageViewCenterYConstraint];
【问题讨论】:
-
你可以在故事板中做吗?或者它必须是硬编码的......
-
它不能在故事板中完成,因为我需要它是动态的!
-
请将您的代码发布为文本,而不是图片。
-
尝试删除
addConstraint行并在每次实例化约束后添加.active = YES。还将[image superview]更改为cell -
@Swinny89 成功了!谢谢
标签: ios objective-c nslayoutconstraint ios-autolayout