作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试通过代码将 subview 添加到具有约束的 View 中。我取得了一些成功,但无论出于何种原因,尾随约束似乎都被完全忽略了。
我的代码:
leading_const = 16.f;
trailing_const = 16.f;
top_const = 12.f;
bottom_const = 12.f;
insertView.translatesAutoresizingMaskIntoConstraints = NO;
[view addSubview:insertView];
NSLayoutConstraint *leading = [NSLayoutConstraint constraintWithItem:insertView
attribute:NSLayoutAttributeLeading
relatedBy:NSLayoutRelationEqual
toItem:view
attribute:NSLayoutAttributeLeading
multiplier:1.f
constant:leading_const];
NSLayoutConstraint *trailing = [NSLayoutConstraint constraintWithItem:insertView
attribute:NSLayoutAttributeTrailing
relatedBy:NSLayoutRelationEqual
toItem:view
attribute:NSLayoutAttributeTrailing
multiplier:1.f
constant:trailing_const];
NSLayoutConstraint *top = [NSLayoutConstraint constraintWithItem:insertView
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:view
attribute:NSLayoutAttributeTop
multiplier:1.f
constant:top_const];
NSLayoutConstraint *height = [NSLayoutConstraint constraintWithItem:insertView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeHeight
multiplier:1.f
constant:130.f];
[superView addConstraints:@[leading, trailing, top, height]];
结果:
感谢任何指导!
最佳答案
您的约束正在应用,但由于您已将其设置为 16
,它会超出 View
的后缘 16 个点。因此,您应该为常量使用负值。
关于ios - 以编程方式添加 UIConstraints 时不应用尾随约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42022220/
我正在尝试通过代码将 subview 添加到具有约束的 View 中。我取得了一些成功,但无论出于何种原因,尾随约束似乎都被完全忽略了。 我的代码: leading_const = 16.f; tra
我是一名优秀的程序员,十分优秀!