簡體   English   中英

通過更改框架來調整UIImageView的大小

[英]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.

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