簡體   English   中英

在swift 3中以編程方式設置UIImageView AspectRatio約束

[英]Set UIImageView AspectRatio constraint programmatically in swift 3

我在故事板中有一個UIImageView,AspectRatio是1:1,在某些情況下,我想在ViewController中以編程方式更改為2:1。 我在ViewController中創建了該約束的引用,但無法設置約束。

您可以在swift 3中以編程方式更改約束

let aspectRatioConstraint = NSLayoutConstraint(item: self.YourImageObj,attribute: .height,relatedBy: .equal,toItem: self.YourImageObj,attribute: .width,multiplier: (2.0 / 1.0),constant: 0)
self.YourImageObj.addConstraint(aspectRatioConstraint)

正如Apple指南中所述 ,有三種方法可以通過編程方式設置約束:

  • 您可以使用布局錨點
  • 您可以使用NSLayoutConstraint類
  • 您可以使用可視格式語言

設置約束的最方便和流暢的方法是使用布局錨點。

只需一行代碼即可更改ImageView的寬高比

imageView.heightAnchor.constraint(equalTo: imageView.widthAnchor, multiplier: 1.0/2.0).isActive = true

結果視圖

避免“[LayoutConstraints]無法同時滿足約束條件。” 你應該添加對ImageView的高度約束的引用然后停用它:

heightConstraint.isActive = false

根據約束條件將約束的乘數設置為0.5或2,它將變為2:1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM