Ho inserito un UIButton all'interno di una UIView personalizzata e il pulsante non riceve alcun evento di tocco (non entra nello stato evidenziato, quindi il mio problema è non di non essere in grado di collegare un tocco all'interno del gestore). Ho provato sia inserendolo nel XIB in Interface Builder, e anche provato a aggiungere programmaticamente UIButton in UIView separatamente, entrambi terminati senza fortuna. Tutti i miei punti di vista sono all'interno di un UIScrollView, quindi prima di tutto però UIScrollView potrebbe bloccarli, quindi ho anche aggiunto un pulsante esattamente nello stesso modo in cui aggiungo la mia vista personalizzata in UIScrollView, e il pulsante ha funzionato, eliminando la possibilità che UIScrollView potesse essere la causa di My View hiearchy è come questo:UIButton all'interno di UIView non risponde agli eventi di tocco
Il pulsante è sopra la visualizzazione delle immagini, e lo strato frontale non occupa completamente il mio tasto, quindi non c'è motivo per me non essere fisicamente interagire con il tasto. Al fianco del codice di mio visualizzazione personalizzata, sto creando mio punto di vista in quanto tale:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
UIView *sub = [[[NSBundle mainBundle] loadNibNamed:@"ProfileView" owner:self options:nil] objectAtIndex:0];
[self addSubview:sub];
[sub setUserInteractionEnabled:YES];
[self setUserInteractionEnabled:YES];
CALayer *layer = sub.layer;
layer.masksToBounds = YES;
layer.borderWidth = 5.0;
layer.borderColor = [UIColor whiteColor].CGColor;
layer.cornerRadius = 30.0;
/*layer.shadowOffset = CGSizeZero;
layer.shadowRadius = 20.0;
layer.shadowColor = [[UIColor blackColor] CGColor];
layer.shadowOpacity = 0.8;
*/
}
return self;
}
Ho provato tutte le combinazioni di setUserInteractionsEnabled
, e non ha avuto fortuna. (Sì, impostalo anche su Interface Builder controllato). Ho anche letto in un'altra domanda con un problema simile che dovrei provare a sovrascrivere 'canBecomeFirstResponder' per restituire 'SÌ' e l'ho fatto anche io. Ma il problema persiste, non riesco a fare clic sul pulsante. Non ho dato alcuna proprietà speciale, impostazioni al pulsante, è solo una normale. Gli altri oggetti nella vista (etichette in basso, vista immagine dietro il pulsante, ecc.) Funzionano correttamente senza problemi. Cosa potrebbe esserci di sbagliato qui?
Grazie,
Can.
UPDATE: ecco un breve riproduzione del problema: https://dl.dropbox.com/u/79632924/Test.zip Provare a correre e fare clic sul pulsante.
sarebbe possibile estrarre questa vista in un piccolo progetto di test? –
Domanda stupida: ti sei ricordato di collegare il pulsante ad esso IBAction? –
@HotLicks si, sono collegati. ma il problema non riguarda il fatto che il gestore eventi non si attiva quando viene toccato, il problema è che il pulsante non riceve (o almeno risponde) eventi di tocco. –