Domanda

Ho un pulsante in una visualizzazione basata Pennino, che non si comporta come un pulsante (il metodo di destinazione non viene mai chiamato). Ho cercato di aggiungere dinamicamente il pulsante, ma non aiuta.

cercherò di descrivere la struttura app (come ho il sospetto che potrebbe essere la causa del problema) e non si sta utilizzando il modello di progettazione destra.

  • Visualizza A è legato al controller di AC . (Caricato da un pennino nel controllore radice e spinto al controller di navigazione.)

  • Vista A ha molteplici subviews embedded. Consente di chiamare uno di quelli A'.

  • Nel metodo AC :: viewDidLoad:

    che carico 3 viewControllers a, b, c in variabili utente di AC.

A seconda delle impostazioni dell'applicazione I aggiungere la vista di uno di questi controller come la visualizzazione secondaria di A '

In sostanza nel metodo AC :: viewDidLoad:

[A' addSubView:(a.view)];

Ora ha a.view un pulsante (che è etichettato) .I ricerca di quel tag. e aggiungere un metodo di destinazione ad esso in modo dinamico. A questo punto l'a.view viene visualizzato come visualizzazione secondaria di A' e il pulsante è anche visibile. Grande.

Ma interazione di contatto non avviene o l'azione tocco è consumato da una persona diversa il mio metodo.

Ho provato un sacco di varianti ma l'esecuzione non raggiunge mai il mio metodo. Ho anche provato ad aggiungere l'obiettivo di tutti i touchUpEvents. Niente. Ho controllato i valori di controllo negli eventi abilitati e che è corretto. Questo pulsante è semplicemente disabilitato in qualche modo. Ho scritto una semplice applicazione con un punto di vista e ha fatto lo stesso, ha funzionato. Così sto pensando che sia qualcosa a che fare con il modo in cui sto mettendo insieme più pezzi.

Tutte le idee?

Mi piacerebbe avere qualcosa di simile a Spy ++ dove ho potuto vedere il messaggio di coda e vedere che stava consumando questi messaggi, invece di mia app o anche guardare l'oggetto della classe. Sono un novizio a questa piattaforma. La mia prima lotta con questo è su questo thread.

È stato utile?

Soluzione 2

Risolto finalmente !!! e imparato qualcosa in cambio. mi è costato un paio di giorni per capire questo fuori.

La ragione per il mio oggetto UIButton non funzionava era perché ho scoperto che in caso di un oggetto UIImageView:

"initWithImage:.. Questo metodo regola il telaio del ricevitore corrisponda alla dimensione dell'immagine specificata Inoltre, disattiva interazioni utente per la visualizzazione dell'immagine di default"

e il mio UIButton era stato assegnato come una visualizzazione secondaria di un controllo UIImageView nel file pennino !!!

Non c'erano errori / avvisi. E 'appena viene disattivato in silenzio.

Soluzione: creato un oggetto UIView contenitore che ora contiene l'UIImageView e il pulsante in modo che il pulsante è come sovrapposto l'immagine, ma in realtà è un fratello dell'immagine e una visualizzazione secondaria del manichino contenitore UIView.

Altri suggerimenti

Basta attivare UserInteraction del UIImageView ... non passare attraverso tutto ciò che la follia !!!

view.userInteractionEnabled = YES;

rapida 'controllo di integrità' ... è la variabile pulsante non nullo quando si sta assegnando il bersaglio / selettrice?

Il pulsante sembrano premere verso il basso quando si preme, e non succede nulla ... o fa il pulsante mai nemmeno premere verso il basso?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top