2016-08-08 135 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 

這是我第一次來回答這個問題,所以如果你還是不知道如何要做到這一點,你可以問我。

相關問題