我的
Xcode项目中的图像资源文件中有一个PDF文件.我正在尝试创建一个使用该PDF图像的条形按钮项.但每当我在Interface Builder中将图像属性设置为图像时,它都会占用我的大部分标签栏并删除标题.
我有一个左栏按钮项目,系统项目停止.所以它看起来像一个X图标.我想在右侧用我的设置PDF图像做同样的事情.
解决方法
使用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)) } } }