Cómo establecer UITextfield ancho de forma dinámica?

Que tengo que hacer la aplicación para iPad.

Hay tres preguntas textfields. Tengo para establecer el ancho de la UITextField dinámicamente, text viene de webservice. y tengo para UITextField anchura igual a la de las preguntas de texto..

cuando los textos pregunta es de pequeño tamaño, a continuación, UITextField es de pequeño tamaño,
cuando los textos cuestión de tamaño es grande, UITextField tamaño es grande,

Tengo código siguiente…..

txtQuestionOne.hidden=NO;
            txtQuestionTwo.hidden=NO;
            txtQuestionThree.hidden=NO;

            imgQueone.hidden=NO;
            imgQueTwo.hidden=NO;
            imgQueThree.hidden=NO;

            [txtQuestionOne setPlaceholder:[[appDelegate.questions objectAtIndex:0] objectForKey:@"question"]];

            appDelegate.FirstQues =[[appDelegate.questions objectAtIndex:0] objectForKey:@"question"];

            NSLog(@"current q1 %@", [[appDelegate.questions objectAtIndex:0] objectForKey:@"question"]);


            if ([[[appDelegate.questions objectAtIndex:0] objectForKey:@"permission"] isEqualToString:@"1"]) {

                ratingButton1.hidden=NO;

                ratingLabel1.hidden=NO;
            }


            [txtQuestionTwo setPlaceholder:[[appDelegate.questions objectAtIndex:1] objectForKey:@"question"]];

            appDelegate.SecondQues =[[appDelegate.questions objectAtIndex:1] objectForKey:@"question"];

            NSLog(@"current q2 %@", [[appDelegate.questions objectAtIndex:1] objectForKey:@"question"]);

            if ([[[appDelegate.questions objectAtIndex:1] objectForKey:@"permission"] isEqualToString:@"1"]) {

                ratingButton2.hidden=NO;

                ratingLabel2.hidden=NO;
            }


            [txtQuestionThree setPlaceholder:[[appDelegate.questions objectAtIndex:2] objectForKey:@"question"]];

            appDelegate.ThridQues =[[appDelegate.questions objectAtIndex:2] objectForKey:@"question"];

            NSLog(@"current q3 %@", [[appDelegate.questions objectAtIndex:2] objectForKey:@"question"]);

            if ([[[appDelegate.questions objectAtIndex:2] objectForKey:@"permission"] isEqualToString:@"1"]) {

                ratingButton3.hidden=NO;

                ratingLabel3.hidden=NO;
            }

Me ayude por favor, no sé qué puedo hacer?

  • Por qué no utilizar UILabel lugar ?
InformationsquelleAutor Virja Rahul | 2012-08-31

3 Kommentare

  1. 2

    Utilizar esto para obtener el tamaño de un NSString de estilo de fuente especificada. Y el uso de la devuelve CGSize establecer el tamaño de elemento de interfaz de usuario puede ser de etiqueta, textfield.

     (comments from apple documentation)
    //Single line, no wrapping. Truncation based on the UILineBreakMode.
    - (CGSize)sizeWithFont:(UIFont *)font; //Uses UILineBreakModeWordWrap
    - (CGSize)sizeWithFont:(UIFont *)font forWidth:(CGFloat)width lineBreakMode:(UILineBreakMode)lineBreakMode;
    
    //for multi lined
    //Wrapping to fit horizontal and vertical size. Text will be wrapped and truncated using the UILineBreakMode. If the height is less than a line of text, it may return
    //a vertical size that is bigger than the one passed in.
    //If you size your text using the constrainedToSize: methods below, you should draw the text using the drawInRect: methods using the same line break mode for consistency
    
    - (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size; //Uses UILineBreakModeWordWrap;
    - (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode;

    Por ejemplo:

    NSString *valueString = @"This is example";
    CGSize newSize = [valueString sizeWithFont: [UIFont fontWithName: @"TrebuchetMS" size: 12] ];
    
    //assign new size
    CGRect textFrame = textbox. frame;
    textFrame. size  = newSize;
    • aumentar la anchura de textfield y necesitan dar el tamaño de la fuente de textfield. es posible?
    • Sí. Anteriormente se lleva a UIFont variable.. que toma el Nombre de Fuente y tamaño
    • ¿cómo puedo utilizar? por favor, dame algún ejemplo? soy nuevo en iphone
    • Han actualizado el post. Esperemos que le ayudará a
    • gracias Ashwin…..
    • Votar por la derecha respuestas ayudarán a otros que buscan respuestas en el futuro

  2. 1

    hizo probar este

    CGRect frame= yourTextField.frame;
    frame.size.width=your_required_width;
    yourTextField.frame=frame;
  3. 0

    Echar un vistazo a este post

    Se muestra el uso de sizeWithFont que le da un CGSize objeto del tamaño de su texto. A continuación, editar tus campos de texto cuadro con los datos de este CGSize objeto.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea