Centrum UILabel Uprostřed panelu Nástrojů na Klávesnici

0

Otázka

Jak mohu centrum štítek uprostřed klávesnice je panel nástrojů? Můžu štítku uprostřed klávesnice, ale to není řádně vycentrovaná

enter image description here

lazy var textView: UITextView = {
    // ...
}()

lazy var dummyToolBarButton: UIButton = {
    let button = UIButton(type: .system)
    button.translatesAutoresizingMaskIntoConstraints = false
    button.setImage(UIImage(named: "cogIcon"), for: .normal)
    button.alpha = 0
    button.sizeToFit()
    return button
}()

lazy var timerLabel: UILabel = {
    let label = UILabel()
    label.translatesAutoresizingMaskIntoConstraints = false
    label.text = "00:00"
    label.font = UIFont.monospacedDigitSystemFont(ofSize: 15.5, weight: .regular)
    label.backgroundColor = .clear
    label.textColor = .gray
    label.textAlignment = .center
    label.sizeToFit()
    return label
}()

override func viewDidLoad() {
    super.viewDidLoad()

    setToolBarOnKeyboard()
}

func setToolBarOnKeyboard() {
    
    let toolBar = UIToolbar()
    toolBar.sizeToFit()
    
    let invisibleDummyButton = UIBarButtonItem(customView: dummyToolBarButton) // alpha is set to 0
    
    let flexibleSpaceLeft = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
    
    let labelItem = UIBarButtonItem(customView: timerLabel)
    
    let flexibleSpaceRight = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
    
    let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(dismissKeyboard))
    
    toolBar.setItems([invisibleDummyButton, flexibleSpaceLeft, labelItem, flexibleSpaceRight, doneButton], animated: false)
    
    textView.inputAccessoryView = toolBar
}

@objc func dismissKeyboard() { }
ios keyboard swift toolbar
2021-11-23 19:11:13
1

Nejlepší odpověď

0

Vše, co jsem musel udělat, bylo nastavit tlačítka na levé straně panelu nástrojů použít UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: nil) a nastavení je barva popředí jasné invisibleDummyButton.setTitleTextAttributes([NSAttributedString.Key.foregroundColor : UIColor.clear], for: .normal)

func setToolBarOnKeyboard() {
    
    let toolBar = UIToolbar()
    toolBar.sizeToFit()
    
    let invisibleDoneButtonLeft = UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: nil)
    invisibleDoneButtonLeft.setTitleTextAttributes([NSAttributedString.Key.foregroundColor : UIColor.clear], for: .normal)

    let flexibleSpaceLeft = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
    
    let middelLabelItem = UIBarButtonItem(customView: timerLabel)
    
    let flexibleSpaceRight = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
    
    let doneButtonRight = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(dismissKeyboard))
    
    toolBar.setItems([invisibleDoneButtonLeft, flexibleSpaceLeft, middleLabelItem, flexibleSpaceRight, doneButtonRight], animated: false)
    
    textView.inputAccessoryView = toolBar
}

Tu fotku štítku střed správně

enter image description here

Tady je obrázek z nástrojů, než jsem jsem nastavit tlačítka na levé straně .clear

enter image description here

2021-11-23 20:34:21

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................