Centro UILabel nel Mezzo della Barra degli strumenti su una Tastiera

0

Domanda

Come posso centrare una etichetta nel mezzo della tastiera e la barra degli strumenti? Posso ottenere l'etichetta nel centro della tastiera, ma non è centrato correttamente

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

Migliore risposta

0

Non ho dovuto fare è stato impostato un pulsante sul lato sinistro della barra degli strumenti da utilizzare UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: nil) e impostare come colore di primo piano chiaro 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
}

Ecco una foto dell'etichetta centrato correttamente

enter image description here

Qui è l'immagine della barra degli strumenti prima ho creato ho impostato il pulsante sul lato sinistro per .clear

enter image description here

2021-11-23 20:34:21

In altre lingue

Questa pagina è in altre lingue

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