2016-08-08 105 views
1

我正在使用NewsAPI来获取新闻,并使图像视图显示来自当前新闻的图像。我希望能够将图像视图的宽度设置为等于图像的宽度,但图像不断变化,因为它是实时新闻馈送。有谁知道我会如何做到这一点?Swift-将图像宽度设置为等于外部图像的宽度

+0

的形象图有contentMode一个属性,您可以设置到方面适合图像始终填充图像视图 –

+0

确定@MSU_Bulldog \t 我得到的图像的宽度,我不知道它的尺寸。我希望能够将其显示在适合屏幕的位置,但会根据图像的大小最小化尺寸。 – dylan

+0

@DylanSteck:你在使用自动布局吗? – amorbytes

回答

0

所以这是我想通了:

比方说,你想要的模糊效果变化的时候,标签的尺寸变化。 (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 

这是我第一次来回答这个问题,所以如果你还是不知道如何要做到这一点,你可以问我。

相关问题