簡體   English   中英

如何在不拉伸的情況下在UIView中填充背景圖像

[英]How to fill the background image in a UIView without streching it

我試圖設置動畫形式的.gif來設置UIView的背景圖像,這是我從Giphy中提取的。

我遇到的問題是UIView正在拉伸圖像。 我想填充背景,使高度為100%,並使其居中。 因此,.gif的左右將被切除-但圖像將在屏幕上居中而不被拉伸。

這是現在的屏幕截圖。

您可以看到它的填充高度正確,但是它正在縮小圖像的寬度以匹配UIView尺寸,從而使其看起來很拉伸。

這是我現在擁有的代碼:

override func viewDidAppear(animated: Bool) {
    self.giphyBackground(Title: "dancing") { [weak self] (gifUrl) -> Void in
        let gifView = FLAnimatedImageView(frame: self!.giphy.frame)
        gifView.animatedImage = FLAnimatedImage(animatedGIFData: NSData(contentsOfURL: NSURL(string: gifUrl)!)!)
        self?.view.insertSubview(gifView, aboveSubview: self!.giphy)
    }
}

有任何想法嗎

我認為您應該將gifView的內容模式設置為Aspect Fit ,這樣將不會拉伸圖像,並且將在水平/垂直方向上完全填充至少一個長度。

嘗試設定

gifView.contentMode = UIViewContentMode.ScaleAspectFit

您也可以使用scale AspectFillgifView

gifView.contentMode = UIViewContentMode.ScaleAspectFill

ScaleAspectFill將填滿整個gifView的框架,但也將保持縱橫比,這樣做不會使圖像看起來被拉伸,但是水平或垂直的內容可能會超出框架(您可以對其進行裁剪)。

您肯定是在尋找視圖的contentMode ScaleAspectFit 只需添加一行gifView.contentMode=UIViewContentMode.ScaleAspectFit

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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