Estoy tratando de hacer un botón que, básicamente, imita los botones visto en el iphone la pantalla de inicio – tiene un cuadro colocado verticalmente por encima de algunas de texto, y ambos son parte de el botón y se comporten de manera apropiada (dim, puede hacer clic, etc) cuando se resaltan.

He intentado poner la imagen o el texto en su propio marco, pero que no funciona porque lo que es en el nuevo marco no es dim con el resto del botón.

El uso de la imagen de fondo de la propiedad no funciona porque quiero que la imagen sobre el texto – el área detrás del texto debe ser transparente. Yo REALMENTE preferiría una solución de programación en lugar de ir y edición de todas mis fotos.

InformationsquelleAutor Mark | 2011-02-07

4 Comentarios

  1. 3

    Crear una subclase de UIView, y tienen un UIImageView y UILabel como subvistas, y la posición de una manera adecuada mediante código.

    Que quedaría la UIImageView y UILabel como propiedades, de modo que usted puede tener acceso a ellos, como este:

    myCustomButton.imageView.image = [UIImage imageNamed:@"..."];
    myCustomButton.textLabel.text = @"...";

    O que probablemente podría encontrar una 3ra Parte personalizado UIView, en el internet en github o algo.

    • Voy a tratar de esto, gracias!
    • no he llegado a probar aún, pero este reacciona como un botón normalmente? (tanto la imagen y el texto de «graduación» o «gris» cuando el botón se hace clic?) ¿Cuál es la forma correcta de llegar la nueva subclase de UIView en el botón?
    • Tendría que hacer la atenuación de sí mismo. Es posible que ud. podría subclase UIButton en lugar de UIView en la que usted probablemente no tiene que.
    • Terminé de subclases UIbutton, funciona muy bien, pero moviendo las cosas es un dolor
    • Me he encontrado con la necesidad de un icono como este, si tengo tiempo voy a hacer uno que puede ser utilizado en otros proyectos y poner en github o algo
    • Gracias…este me ayudó ! y seguro +1

  2. 1

    Jonathan es una buena idea, pero si sólo estás haciendo con un par de imágenes que no vale la pena. Usted puede crear un UIImage y un UILabel y, a continuación, colóquelas dentro de un UIButton en el interface builder.

    Aún así, es siempre una buena idea para aprender acerca de las características de gran alcance como la creación de subclases.

    Buena suerte,

    Aurum Aquila

    • Gracias, pero quiero tratar de hacerlo de la manera «correcta»:)
    • pero… por curiosidad, ¿cómo se puede agregar un UIImage y UILabel a un UIButton dentro de Interface Builder?
    • Yo debería haber sido más clara de crear la imagen y la etiqueta y, a continuación, pase un UIButton sobre él. Usted, a continuación, cambie el tipo de la UIButton a la costumbre. A continuación, voy a aceptar eventos de toque, pero usted no será capaz de verlo.
    • Por lo que dices de poner un botón para borrar más de la imagen y la etiqueta. Así que si usted fuera a mover el botón a continuación, la imagen y la etiqueta no. Usted podría pensar que me sesgada, pero que no suena demasiado bien.
    • Es rápida y sucia método. Si vas a usar más de una vez, de la subclase. Pero si sólo estás haciendo como una sola cosa, está bien. Tienes derecho a tener sospechas sobre ella, es un poco tanto si usted tiene más de uno. Pero si sólo quieres hacer algo bien.
  3. 1

    hacer esto:

    UIButton *btn_chat = [UIButton buttonWithType:UIButtonTypeCustom];
    btn_chat.frame = CGRectMake(40, 50, 100, 30);//CGRectMake(20, 20, 200, 72);
    UIImage *image = [UIImage imageNamed:@"chat.png"];
    CGSize newSize = CGSizeMake(30, 30);
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();    
    UIGraphicsEndImageContext();
    [btn_chat setImage:newImage forState:UIControlStateNormal];
    btn_chat.imageEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);
    [btn_chat setTitle:@"Chat" forState:UIControlStateNormal];
    btn_chat.titleEdgeInsets = UIEdgeInsetsMake(0, 20, 0, 0);
    btn_chat.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
    [btn_chat addTarget:self action:@selector(menuSelection:) forControlEvents:UIControlEventTouchUpInside];
    [btn_chat setTag:1001];
    [self.view addSubview:btn_chat];

    y listo 🙂

    • No funciona…
  4. 0

    Crear una nueva inicialmente mapa de bits transparente dibujo contexto, dibujar su imagen a la parte superior y el texto en la parte inferior. A continuación, hacer una nueva imagen a partir de este dibujo contexto, y el uso que la nueva imagen para el botón.

    • Él bien podría editar sus imágenes de sí mismo y salvar a hacerlo cada vez que el botón se crea.
    • No se puede pre-editar si el texto y la imagen son independientes. O si uno tiene un millón de millones de imágenes.

Dejar respuesta

Please enter your comment!
Please enter your name here