如何防止UIButton的imageView占用整个UIButton?
我正在尝试使用图标和标题以编程方式制作UIButton
(默认情况下,图标应位于标题左侧)。 但是,图标的尺寸相当大,所以当我使用myButton.setImage()
图标拉伸并占用整个button时,标题也会消失。
我也尝试设置imageEdgeInsets
但它不会使标题出现。
那么有没有办法让图标变小(也许.scaleToFit
)和标题再次出现?
如果没有,我应该输出多less的图标(相对于button)?
尝试添加这个扩展到UIImage
:
extension UIImage { func resizeToBoundingSquare(_ boundingSquareSideLength : CGFloat) -> UIImage { let imgScale = self.size.width > self.size.height ? boundingSquareSideLength / self.size.width : boundingSquareSideLength / self.size.height let newWidth = self.size.width * imgScale let newHeight = self.size.height * imgScale let newSize = CGSize(width: newWidth, height: newHeight) UIGraphicsBeginImageContext(newSize) self.draw(in: CGRect(x: 0, y: 0, width: newWidth, height: newHeight)) let resizedImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext(); return resizedImage! } }
假设你有一个你想resize为40×40的图标。 只要这样做:
var myIcon = UIImage(named: image) myIcon = myIcon.resizeToBoundingSquare(40)