2017-07-16 295 views
0

我有一个带有背景图片的按钮,我用SDWebImage下载。我想保持高度不变,并通过保持高宽比而不是剪切图像来改变宽度。恒定的高度和动态的宽度。这里有什么问题?SDWebImage按钮背景图片调整大小

//CODE FROM FUNCTION --- 
button.sd_setBackgroundImage(with: url, for: .normal, placeholderImage: UIImage(named: "img"),options: SDWebImageOptions(rawValue: 0), completed: { (image, error, cacheType, imageURL) in 
     let view = UIView(frame: CGRect(x: 0, y: 0, width: self.resizeImage(image: image!, newHeight: 100), height: 100)) 
     button.frame = view.frame 
    }) 
view.addSubview(button) 
return view 

这是我的助手功能

func resizeImage(image: UIImage, newHeight: CGFloat) -> CGFloat { 

    let scale = newHeight/image.size.height 
    let newWidth = image.size.width * scale 
    return newWidth 
} 
+0

你看到的输出是什么,添加屏幕截图? –

+0

它现在给我一个错误,所以即时通讯完全在这里错误的路径 '原因:'层是其层树中的周期的一部分' – Kenny

回答

0

您可以创建IBOutlet中NSLayoutConstraint的按键宽度和在运行时给了按钮的宽度恒定值按照图像宽度(下载图片后)。

+0

我试着像你说的那样。现在我想我有两个相同类型的约束,并删除了新的约束。我怎样才能取代我的宽度约束与新的? – Kenny