我在情节提要中添加了具有默认图像的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()

关于ios - 通过更改框架来调整UIImageView的大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45931756/

10-10 20:52