[英]Resize UIImageView by changing frame
我在情節提要中添加了具有默認圖像的UIImageView。 在代碼中,我將在運行時更新圖像並調整框架。
mainImageView.sd_setImage(with: NSURL(string: urlString) as URL?, completed: {
(image, error, cacheType, url) in
self.setPoints()
})
public func setPoints() {
mainImageView.frame = CGRect(x:x, y:0, width:(mainImageView.image?.size.width)!/1.7, height:(mainImageView.image?.size.height)!/1.7)
mainImageView.contentMode = .scaleAspectFill
mainImageView.setNeedsDisplay()
mainImageView.reloadInputViews()
mainImageView.updateConstraintsIfNeeded()
}
我閱讀了有關堆棧溢出的各種文章,並嘗試使用上述方法調整imageivew的大小,但是沒有運氣。 還有其他方法可以調整imageview的大小嗎?
您應該禁用預生成的約束。 最簡單的方法是使用自動調整大小的蒙版而不是使用約束來制作動畫視圖。
mainImageView.translatesAutoresizingMaskIntoConstraints = true
您可以將此代碼放到-viewDidLoad
方法中或在mainImageView.sd_setImage(with:...
最后但並非最不重要的一點是,您需要在塊內調用layoutIfNeeded。
self.view.layoutIfNeeded()
似乎您正在使用自動布局來調整圖像視圖的大小,這可以解釋為什么手動設置框架無法執行任何操作。 您需要修改確定圖像視圖大小的約束,然后調用mainImageView.layoutIfNeeded()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.