ios uibutton xcode6

Xcode iOS aumenta UIButton área de golpe



xcode6 (3)

Estoy intentando aumentar el área de impacto de mi UIButton. Tengo un nuevo proyecto Xcode con un UIButton en el centro del guión gráfico. El botón está conectado a mi controlador de vista con una salida y acción. Estoy programamente capaz de cambiar el título del botón y solo por diversión hice su acción para cambiar el fondo de la vista cuando toco el botón. Entonces sé que todo está conectado y funciona.

Por lo que he leído en línea, esto debería funcionar, pero no es así.

[button setFrame: CGRectMake (button.frame.origin.x, button.frame.origin.y, -64, -64)];

¿Alguna idea? Lo he intentado sin los márgenes negativos y eso tampoco funciona. Por cierto, he intentado en muchos lugares esta pregunta se hace pero no está funcionando. Gracias por tu ayuda. Además, he escuchado que la creación de subclase UIButton podría crear un problema, ¿alguna reflexión sobre eso?

Actualización: El UIButton que quiero hacer tiene un color de fondo y tiene un tamaño específico. Quiero mantener ese tamaño igual pero aumentar el área de impacto a su alrededor sin distorsionar la apariencia del botón.


Para aumentar el área de impacto sin distorsionar el color de fondo o la imagen, probablemente sería más fácil separarlos. Tenga un UIButton claro, sin color de fondo, encima de un UIView (o UIImage, etc.) que proporcione las imágenes. De esta forma, puede hacer lo que quiera en el marco del UIButton, y no afectará las imágenes a menos que aplique las mismas transformaciones al otro UIView.

En cuanto a por qué esa línea de código no funciona, los elementos tercero y cuarto en CGRectMake no son márgenes, son dimensiones: no puede tener un alto y un ancho negativos. Coloque el tamaño final que desea que sea, no el cambio o los márgenes (es decir, si desea reducir un ancho de 100 por 20, ingrese 80).



¿Pienso que solo quieres usar el mismo botón para restringir el color de fondo o la imagen de fondo a la misma área y aumentar el área táctil?

según mi conocimiento, no puedes hacer eso en el constructor de interfaz. Pero a través de la codificación puede mediante el uso de capas.

tomar la salida del botón

CALayer *buttonlayer=[CALayer layer]; buttonlayer.frame=CGRectMake(50 , 50, 50, 50); // set the frame where you want to see the background color or background image to be visible in your button buttonlayer.backgroundColor=[[UIColor colorWithPatternImage:[UIImage imageNamed:@"yourimage.png"] ] CGColor]; // if u want image (but remember the image size must same as your layer frame it may look bad if the image bounds does not mach your layer bounds, because you are setting color not image) // to set color (donot use if you want image, use colorWithPatternImage to set image color) buttonlayer.backgroundColor=[[UIColor graycolor] CGColor]; // if you want only color // you can add round rects to the button layer buttonlayer.cornerRadius=2.5f; [yourbutton.layer addSublayer:buttonlayer];

No estoy seguro de lo que estás buscando, espero que esto te ayude pero verifica la imagen una vez