我在iOS swift项目中的键盘上方有一个工具栏。当我单击thorugh我的应用程序并转到某些页面,然后使用工具栏转到某个页面时,完成按钮消失了。如果您单击页面上的另一个文本字段,它将返回,直到您返回将其弄乱的应用程序页面。如果删除弹性空间按钮,它将永远不会消失。我已经检查了工具栏的框架大小,但它似乎从未改变。该按钮有时也会变成白色。不知道如果有人有任何想法怎么办?此congifureToolbar()在viewdidload中调用。我也尝试在viewdidappear中调用它,并尝试调用layoutSubviews。 inputToolbar只是一个UIToolbar()。我尝试使用自定义的xib工具栏,自定义的xib视图,第三方库工具栏,但没有任何区别。
func configureToolBar() {
inputToolbar.barTintColor = UIColor.groupTableViewBackground
inputToolbar.barStyle = .default
inputToolbar.isTranslucent = false
inputToolbar.sizeToFit()
inputToolbar.tintColor = UIColor(red: 0/255, green: 102/255, blue: 252/255, alpha: 1.0)
inputToolbar.setShadowImage(AppColors.shared.tableViewSeparatorColor.as1ptImage(), forToolbarPosition: .any)
let doneButton = UIBarButtonItem(title: "Done", style: .done, target: self, action: #selector(dismissKeyboard))
let flexibleSpaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let fixedSpaceButton = UIBarButtonItem(barButtonSystemItem: .fixedSpace, target: nil, action: nil)
doneButton.tintColor = UIColor(red: 0/255, green: 102/255, blue: 252/255, alpha: 1.0)
doneButton.setTitleTextAttributes([NSAttributedStringKey.foregroundColor : UIColor(red: 0/255, green: 102/255, blue: 252/255, alpha: 1.0)], for: .normal)
let nextButton = UIBarButtonItem(image: imageLiteral(resourceName: "toolbar-down"), style: .plain, target: self, action: #selector(moveToNextInput))
nextButton.tintColor = AppColors.shared.blackColor
nextButton.width = 50.0
let previousButton = UIBarButtonItem(image: imageLiteral(resourceName: "toolbar-up"), style: .plain, target: self, action: #selector(moveToPreviousInput))
previousButton.tintColor = AppColors.shared.blackColor
inputToolbar.setItems([fixedSpaceButton, previousButton, fixedSpaceButton, nextButton, fixedSpaceButton, doneButton], animated: false)
inputToolbar.isUserInteractionEnabled = true
}
如果我没有放置一个灵活的空格按钮,而是放置了一个固定的空格按钮,那么我可以看到完成的按钮正被推离屏幕,因为我可以将其部分切除。