/ / UIButton neregistruje dotyky - ios, swift, uibutton, swift3

UIButton nezaregistruje dotyky - ios, swift, uibutton, swift3

Do navigačného panela v jednom z mojich ovládačov zobrazenia som pridal UIButton s vlastným obrázkom a bez textu. Na tejto navigačnej lište je tiež predvolené tlačidlo Späť.

Toto UIButton som prepojil pomocou spojenia: Akcia, Typ: UIButton, Udalosť: Touch Up Inside a Arguments: Sender.

Keď kliknem na toto tlačidlo, nič sa nestane, neregistruje sa dotyk vôbec. Tlačidlo Späť funguje normálne.

tu zadajte popis obrázku

Prečo sa to deje? Ako to opraviť?

odpovede:

0 pre odpoveď č. 1

Skúste to:

  1. Keďže ho pridávate do navigačnej lišty, musí to byť UIBarButtonItem, Akčná zásuvka, ku ktorej sa pripájate, musí mať určitý typ UIBarButtonItem a nie UIButton.

  2. Skontrolujte, či je zásuvka UIBarButtonItem je správne pripojený.

  3. Skontrolujte, či interakcia používateľa z UIBarButtonItem je zapnutá.


0 pre odpoveď č. 2

Keď kliknem na toto tlačidlo, nič sa nestane, vôbec to neregistruje dotyk.

99% času, keď vidím túto sťažnosť,Dôvod je ten, že ste nejako umiestnili tlačidlo mimo jeho dohľad. Tlačidlo mimo jeho dohľad je viditeľné (predvolene), ale nie je možné sa ho dotknúť. (Niekedy sa to stane, pretože samotný dohľad nikdy nemal veľkosť, takže má nulovú veľkosť; iné niekedy je to z iného dôvodu.)

Nemôžem vám povedať nič viac, pretože vy už viac neuvádzam (tj. neuvádzate podrobnosti o tom, ako sa toto tlačidlo dostáva do navigačnej lišty). Ale som ochotný sa staviť, že ak sa dostanete hlbšie, zistím, že môj odhad je správny.


0 pre odpoveď č. 3

Vyriešil som to tak, že som do navigačnej lišty najskôr pridal položku navigácie a potom do položky navigácie pridal tlačidlo.


0 pre odpoveď č. 4

Ak chcete pridať tlačidlo na navigačnom paneli, musíte pridať toto:

 let leftButton = UIBarButtonItem(title: "abc", style: .Plain, target: self, action: #selector(ViewController.buttonClicked(_:)))
let navigationItem = UINavigationItem()
navigationItem.titleView = UIImageView(image: UIImage(named: "image.png"))
navigationItem.leftBarButtonItem = leftButton

Toto je pre ľavé tlačidlo. Rovnakým spôsobom môžete pridať pravé tlačidlo.