ios – Xcode使用条形图中的PDF图像按钮项目大小太大

我的 Xcode项目中的图像资源文件中有一个PDF文件.我正在尝试创建一个使用该PDF图像的条形按钮项.但每当我在Interface Builder中将图像属性设置为图像时,它都会占用我的大部分标签栏并删除标题.

我有一个左栏按钮项目,系统项目停止.所以它看起来像一个X图标.我想在右侧用我的设置PDF图像做同样的事情.

有没有办法在Interface Builder中修复此大小调整问题?如果没有,我怎么能在代码解决这个问题?

解决方法

使用Code我在图像大小太大时所做的事情,我在UIControl上渲染/设置之前调整UIImage的大小.我在UIImage上有这个扩展,有助于重新缩放图像.
// MARK: - Used to scale UIImages
extension UIImage {
    func scaleto(_ newSize: CGSize) -> UIImage {
        UIGraphicsBeginImageContextWithOptions(newSize,false,0.0)
        self.draw(in: CGRect(x: 0,y: 0,width: newSize.width,height: newSize.height))
        let newImage: UIImage = UIGraphicsGetimageFromCurrentimageContext()!
        UIGraphicsEndImageContext()
        return newImage
    }
}

使用它看起来像这样

let defaultimage = UIImage(named: "someimagenamehere")?
    .scaleto(CGSize(width: 40,height: 40))

self.navigationItem.leftBarButtonItem = UIBarButtonItem(
    image: defaultimage,style: .plain,target: self,action: #selector(self.someselectorhere(_:)))

更新:这就是使用@IBDesignable和@IBInspectable的样子

@IBDesignable
class CustomBarButtonItem: UIBarButtonItem {

    @IBInspectable
    var scaledHeight: CGFloat = 0 {
        didSet {
            self.image = self.image?.scaleto(CGSize(width: self.scaledHeight,height: self.scaledWidth))
        }
    }

    @IBInspectable
    var scaledWidth: CGFloat = 0 {
        didSet {
            self.image = self.image?.scaleto(CGSize(width: self.scaledHeight,height: self.scaledWidth))
        }
    }
}

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...