under right and iphone objective-c ios uibutton addsubview

iphone - right - addSubView to UIButton



uibutton right image (6)

¿Has intentado poner:

[asyncImage setUserInteractionEnabled:YES];

Estoy tratando de agregar subvistas a un UIButton. Esto está funcionando bien en este momento. Pero el botón ya no se puede hacer clic tan pronto como agregue las subvistas.

Yo uso el siguiente código:

UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom]; button.frame = CGRectMake(column*100+24, row*80+10, 64, 64); [button addSubview:asyncImage]; [button addSubview:price]; [button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];

El botón funciona nuevamente si elimino las 2 vistas adicionales. ¡Si alguien sabe cómo solucionar esto, sería genial!

THNX !!!


En Swift, prueba que tienes tu UIButton bloqueado

uibtn.userInteractionEnabled = false uibtn.exclusiveTouch = false


En la misma ubicación, realizo esta acción: heredo de UIButton y agrego todas las etiquetas y la vista de imagen del botón, finalmente pongo un nuevo botón para ver como última subvista y agrego objetivos de botón a este último botón (también establezco backgroundColor para clearColor para transparente ) ahora se podrá hacer clic y funciona bien.


Encontré soluciones rápidas. Necesitaba establecer la imagen asíncrona a lo siguiente:

asyncImage.userInteractionEnabled = NO; asyncImage.exclusiveTouch = NO;

¡Después de esto, funcionó!


Lo importante aquí es asegurarse de que userInteractionEnabled se establezca en NO . Afortunadamente, funciona inmediatamente para UIImageView y UILabel (quizás para otras subclases de UIView pero esas son las subvistas más populares que se agregan al botón) porque de forma predeterminada para estas clases se establece en NO de manera predeterminada. Lamentablemente, está configurado en YES en UIView así que asegúrese de cambiarlo en ese caso. No debería ser necesario jugar con otras banderas. La naturaleza del problema es que muchas personas no saben que el valor predeterminado de esta bandera es diferente en las subclases.


tratar:

[UIButton buttonWithType:UIButtonTypeCustom];

en lugar de:

[UIButton buttonWithType:UIButtonControlType];