Ios 用自定义视图替换UIBarButtonim
找到此代码以在十进制键盘垫中插入“完成”按钮,只要我不使用自定义视图,此代码就可以工作,如以下代码所示:Ios 用自定义视图替换UIBarButtonim,ios,swift,uiimageview,uibarbuttonitem,Ios,Swift,Uiimageview,Uibarbuttonitem,找到此代码以在十进制键盘垫中插入“完成”按钮,只要我不使用自定义视图,此代码就可以工作,如以下代码所示: extension UITextField { func makeKeyboardToolBar(title: String) { let keyboardToolBar = UIToolbar() keyboardToolBar.sizeToFit() let flexibleSpace = UIBarButtonItem(barB
extension UITextField {
func makeKeyboardToolBar(title: String) {
let keyboardToolBar = UIToolbar()
keyboardToolBar.sizeToFit()
let flexibleSpace = UIBarButtonItem(barButtonSystemItem:
UIBarButtonItem.SystemItem.flexibleSpace, target: nil, action: nil)
let bimage = UIImageView(image: UIImage(named: "icon_plus_50"))
let doneButton = UIBarButtonItem(title: title, style: UIBarButtonItem.Style.done, target: self, action: #selector(self.doneClicked))
doneButton.customView = bimage
keyboardToolBar.setItems([flexibleSpace, doneButton], animated: true)
self.inputAccessoryView = keyboardToolBar
}
@objc func doneClicked() {
self.endEditing(true)
}
}
图像出现,但没有反应。请不要设置自定义视图,否则会显示标题并根据需要进行单击响应。
也有类似的问题,但不是这样。目的-c。。。
感谢您的帮助。请勿创建或使用UIImageView。只需用图像创建uibarbuttonite
let doneButton = UIBarButtonItem(image: UIImage(named: "icon_plus_50"), style: .plain, target: self, action: #selector(doneClicked))
无需设置customView。是的,它工作并响应。但是图像将显示为实心,没有图像:它只是一个蓝色圆圈,在加号图标内有一个白色十字。出现的图像是没有白色十字的蓝色实心圆?它只是一个50x50 png。。。。如果我在普通视图中加载它,它会正常显示。默认情况下,工具栏图像是指模板。只有阿尔法才重要。如果要按原样显示图像,则需要将UIImageName:icon_plus_50更改为UIImageName:icon_plus_50.withRenderingMode.alwaysOriginal。此对象的帧在哪里?我相信,如果为自定义UIBarButtonItem设置框架,它将不会显示为UIBarButtonItem需要自动布局约束。如果您设置帧的高度和宽度而不是使用“自动”,则这可能是解决方案-layout@DavidLintin根据我的回答,不需要设置框架。也许你是想发表你对这个问题的评论而不是这个答案。@frameworker很乐意帮忙。请不要忘记单击答案左侧的复选标记,表明您的问题已解决。您可能希望在前面的问题中也这样做。