Sar*_*vad 2 ios autolayout nslayoutconstraint swift
//MARK: NSLayoutConstraints
//trailing
let trailingConstaint = NSLayoutConstraint(item: imageView, attribute: .trailing, relatedBy: .equal, toItem:imageView.superview , attribute: .trailing, multiplier: 1, constant: 0)
trailingConstaint.isActive = true
//leading
let leadingConstraint = NSLayoutConstraint(item: imageView, attribute: .leading, relatedBy: .equal, toItem: imageView.superview, attribute: .leading, multiplier: 1, constant: 0)
leadingConstraint.isActive = true
//top
let topConstraint = NSLayoutConstraint(item: image, attribute: .top, relatedBy: .equal, toItem: imageView.superview, attribute: .top, multiplier: 1, constant: 0)
topConstraint.isActive = true
//bottom
let bottomConstraint = NSLayoutConstraint(item: imageView, attribute: .bottom, relatedBy: .equal, toItem: imageView.superview, attribute: .bottom, multiplier: 1, constant: 0)
bottomConstraint.isActive = true
Run Code Online (Sandbox Code Playgroud)
我想调整图像大小以使其适合,以便图像正确缩放 ViewController 的屏幕截图
但我收到这个错误..
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“大小 {746, 496} 方向 0 缩放 1.000000 的 NSLayoutConstraint:每个约束项必须是 UIView 或 UILayoutGuide 的实例。”
//top
let topConstraint = NSLayoutConstraint(item: image, attribute: .top, relatedBy: .equal, toItem: imageView.superview, attribute: .top, multiplier: 1, constant: 0)
topConstraint.isActive = true
Run Code Online (Sandbox Code Playgroud)
您将此约束设置为图像而不是imageView。
该例外明确指出Constraint items must each be an instance of UIView, or UILayoutGuide.'
所有其他约束都在imageView和imageView.superView之间设置,因此从逻辑上讲,上述约束也应该使用同一对。
这将处理异常。
//top
let topConstraint = NSLayoutConstraint(item: imageView, attribute: .top, relatedBy: .equal, toItem: imageView.superview, attribute: .top, multiplier: 1, constant: 0)
topConstraint.isActive = true
Run Code Online (Sandbox Code Playgroud)
但是,图像缩放不能通过约束来实现。您必须适当地设置contentMode属性。查看详细解释的文档中的了解图像如何缩放部分。
| 归档时间: |
|
| 查看次数: |
3599 次 |
| 最近记录: |