gpt4 book ai didi

ios - Xcode 在栏按钮项目大小太大中使用 PDF 图像

转载 作者:IT王子 更新时间:2023-10-29 05:30:32 24 4
gpt4 key购买 nike

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

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

有没有办法在 Interface Builder 中解决这个大小调整问题?如果不是,我该如何在代码中解决这个问题?

最佳答案

当图像尺寸太大时,我会使用代码调整 UIImage 的大小,然后在 UIControl 上进行渲染/设置。我在 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 ?? self
}
}

使用这个看起来像这样

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 - Xcode 在栏按钮项目大小太大中使用 PDF 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46676843/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com