この画像を画像ビューに配置し、アスペクトに合わせるだけです。実行時に自動レイアウトで画像ビュー枠が正しく設定されていない
override func viewDidLoad() {
super.viewDidLoad()
let image = UIImage(named: "1-landscape")
let imageView = UIImageView(image: image)
imageView.translatesAutoresizingMaskIntoConstraints = false
imageView.backgroundColor = UIColor.blackColor()
imageView.contentMode = .ScaleAspectFit
view.addSubview(imageView)
var collector = [NSLayoutConstraint]()
collector.appendContentsOf(NSLayoutConstraint.constraintsWithVisualFormat("H:|-0-[imageView]-0-|", options: [], metrics: nil, views: ["imageView": imageView]))
collector.append(NSLayoutConstraint(item: imageView, attribute: .CenterY, relatedBy: .Equal, toItem: view, attribute: .CenterY, multiplier: 1, constant: 0))
view.addConstraints(collector)
}
、ビューの高さは、画像の高さよりも50%大きいです。なぜ ???
私たちは私たちの見解を敷設の古い学校の方法を使用している場合は、問題はありません。私は自動レイアウトや何かのステップを忘れていますか?
override func viewDidLoad() {
super.viewDidLoad()
let image = UIImage(named: "1-landscape.png")!
let scaleFactor = image.size.height/image.size.width
let width = view.frame.size.width
let height = width * scaleFactor
let size = CGSize(width: width, height: height)
let imageView = UIImageView(image: image)
// imageView.translatesAutoresizingMaskIntoConstraints = false
imageView.backgroundColor = UIColor.blackColor()
imageView.contentMode = .ScaleAspectFit
imageView.frame.size = size
imageView.center = view.center
view.addSubview(imageView)
// var collector = [NSLayoutConstraint]()
// collector.appendContentsOf(NSLayoutConstraint.constraintsWithVisualFormat("H:|-0-[imageView]-0-|", options: [], metrics: nil, views: ["imageView": imageView]))
// collector.append(NSLayoutConstraint(item: imageView, attribute: .CenterY, relatedBy: .Equal, toItem: view, attribute: .CenterY, multiplier: 1, constant: 0))
// view.addConstraints(collector)
}
後、私はこれが動作しているかはわからないが、のような固定の高さを設定することで、スケールの側面 –