1
我正在使用NewsAPI来获取新闻,并使图像视图显示来自当前新闻的图像。我希望能够将图像视图的宽度设置为等于图像的宽度,但图像不断变化,因为它是实时新闻馈送。有谁知道我会如何做到这一点?Swift-将图像宽度设置为等于外部图像的宽度
我正在使用NewsAPI来获取新闻,并使图像视图显示来自当前新闻的图像。我希望能够将图像视图的宽度设置为等于图像的宽度,但图像不断变化,因为它是实时新闻馈送。有谁知道我会如何做到这一点?Swift-将图像宽度设置为等于外部图像的宽度
所以这是我想通了:
比方说,你想要的模糊效果变化的时候,标签的尺寸变化。 (Blur效果是标签的晚餐视图)
view.addSubview(progressTextVisualEffectView)
NSLayoutConstraint.activate([
progressTextVisualEffectView.topAnchor.constraint(equalTo: iosImage.topAnchor, constant: 20),
progressTextVisualEffectView.leftAnchor.constraint(equalTo: iosImage.leftAnchor, constant: 20),
progressTextVisualEffectView.heightAnchor.constraint(equalToConstant: 36),
])
progressTextVisualEffectView.autoresizesSubviews = true
progressTextVisualEffectView.contentView.addSubview(progressLabel)
NSLayoutConstraint.activate([
progressLabel.centerXAnchor.constraint(equalTo: progressTextVisualEffectView.centerXAnchor),
progressLabel.centerYAnchor.constraint(equalTo: progressTextVisualEffectView.centerYAnchor),
progressLabel.rightAnchor.constraint(equalTo: progressTextVisualEffectView.rightAnchor, constant: -10),
progressLabel.leftAnchor.constraint(equalTo: progressTextVisualEffectView.leftAnchor, constant: 10)
])
}
let progressLabel: UILabel = {
let label = UILabel()
label.translatesAutoresizingMaskIntoConstraints = false
label.text = "1/111112"
label.textColor = UIColor(white: 1, alpha: 0.7)
label.font = UIFont.systemFont(ofSize: 15, weight: .semibold)
label.sizeToFit()
return label
}()
let progressTextVisualEffectView: UIVisualEffectView = {
let blurEffect = UIBlurEffect(style: .dark)
let blur = UIVisualEffectView(effect: blurEffect)
blur.layer.cornerRadius = 12
blur.clipsToBounds = true
blur.translatesAutoresizingMaskIntoConstraints = false
blur.sizeToFit()
return blur
}()
最重要的部分是,
progressTextVisualEffectView.autoresizesSubviews = true
这是我第一次来回答这个问题,所以如果你还是不知道如何要做到这一点,你可以问我。
的形象图有contentMode一个属性,您可以设置到方面适合图像始终填充图像视图 –
确定@MSU_Bulldog \t 我得到的图像的宽度,我不知道它的尺寸。我希望能够将其显示在适合屏幕的位置,但会根据图像的大小最小化尺寸。 – dylan
@DylanSteck:你在使用自动布局吗? – amorbytes