edición de texto en la vista de texto xcode

Tengo una vista de texto en el que se muestra el texto como este:

how are you?

Fine

Ahora si puedo configurar el tipo de letra para el texto de la vista, luego la misma fuente se muestra para las dos líneas(preguntas y respuestas), sin embargo quiero que la pregunta se mostrarán en una fuente y la respuesta de alguna otra fuente. ¿Cómo puedo hacer esto?

Me puse la fuente como esta:

textView = [[UITextView alloc]initWithFrame:CGRectMake(10, 80, 300, 440)];
textView.layer.borderColor = [UIColor blackColor].CGColor;
[textView setFont:[UIFont fontWithName:@"TimesNewRomanPS-ItalicMT" size:14]];
textView.layer.borderWidth = 1.0;
    textView.autoresizesSubviews = YES;
    textView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.view addSubview:textView];

Gracias de antemano!!

Su aspecto como el mismo requisito. stackoverflow.com/questions/2183275/…

OriginalEl autor user1845209 | 2013-02-01

3 Kommentare

  1. 4

    De la UITextView de referencia de la clase:

    En iOS 6 y posteriores, esta clase compatible con varios estilos de texto a través de
    el uso de la attributedText de la propiedad. (Estilo de texto no es compatible en
    las versiones anteriores de iOS.) Estableciendo un valor para esta propiedad hace que el
    vista de texto para usar el estilo de la información proporcionada en el atribuida
    de la cadena. Usted todavía puede usar el tipo de letra, textColor, y textAlignment
    propiedades para establecer los atributos de estilo, pero las propiedades se aplican a todos los
    el texto en la vista de texto.

    Esta clase no admite varios estilos de texto. La fuente, el color,
    y la alineación del texto atributos de especificar siempre se aplican a toda la
    contenido de la vista de texto. Para mostrar más complejo de estilo en su
    aplicación, usted necesita usar un UIWebView objeto y hacer que su
    contenido con HTML.

    Así que usted no puede tener dos en la misma página para iOS 5 o menos, porque no es compatible. Sólo tiene que utilizar un webview y un archivo HTML. para iOS6 tal vez usted puede tratar de usar attributedText propiedad de UITextView. Este está disponible en iOS 6. Nunca lo probé, aunque.

    O tener 2 diferentes UITextView (sus feo, pero eso es lo que es).

    Si me UIlabel en lugar de UITextView, entonces ¿cómo puedo hacer esto?
    qué parte de su código es estático? la pregunta es estática? o respuesta estática? si alguno de ellos es estática, entonces usted puede utilizar UILabel lugar.Son mejores para tu gestión de memoria de también.

    OriginalEl autor Srikar Appalaraju

  2. 0

    Supongo que quería crear una sala de chat, como app?

    si es así, te recomiendo hacer un UITableView. Y, a continuación, hacer que las diferentes Células para que coincida con diferentes estilos.

    OriginalEl autor Kyle Fang

  3. 0

    Puede utilizar atribuido cadenas para lograr esto, por ejemplo:

    NSMutableAttributedString *para1 = [[NSMutableAttributedString alloc] initWithString:@"How are you?"];
    NSMutableAttributedString *para2 = [[NSMutableAttributedString alloc] initWithString:@"\nFine"];
    [para2 setAttributes:@{ NSForegroundColorAttributeName : [UIColor blueColor]}  range:NSMakeRange(0, para2.length)];
    [para1 insertAttributedString:para2 atIndex:para1.length];
    
    self.textLabel.attributedText = para1;

    O con una sola atribuido cadena:

    NSMutableAttributedString *para1 = [[NSMutableAttributedString alloc] initWithString:@"How are you?\nFine"];
    
    //Get the range of the last line in the string
    __block NSRange range;
    [para1.mutableString enumerateLinesUsingBlock:^(NSString *line, BOOL *stop) {
        range = [para1.mutableString rangeOfString:line];
    }];
    
    [para1 setAttributes:@{ NSForegroundColorAttributeName : [UIColor blueColor] } range:range];
    
    self.textLabel.attributedText = para1;

    Ambos ejemplos resultado:

    edición de texto en la vista de texto xcode

    Lo que si si tengo el texto en una única cadena de texto dicen para1?..En realidad estos datos provienen de formato tableview del textLabel que contiene ambas preguntas y la respuesta.
    Usted puede obtener el mismo resultado mediante un único atribuido cadena, pero usted tiene que utilizar el método: -addAttributes:rango:. Voy a actualizar mi respuesta a mostrar ambos enfoques.
    Supongo que las cadenas que se consumen son de formato libre, así que he modificado mi respuesta para encontrar el rango de la última línea en la cadena y aplicar el azul atributo de esa línea. Déjame saber lo que piensas.

    OriginalEl autor josh-fuggle

Kommentieren Sie den Artikel

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

Recent Articles

Python «set» con duplicados/elementos repetidos

Hay una forma estándar de representar un "conjunto" que puede contener elementos duplicados. Como yo lo entiendo, un conjunto tiene exactamente un cero o...

Python: generador de expresión vs rendimiento

En Python, ¿hay alguna diferencia entre la creación de un generador de objetos a través de un generador de expresión versus el uso de...

Cómo exportar/importar la Masilla lista de sesiones?

Hay una manera de hacer esto? O tengo que tomar manualmente cada archivo de Registro? InformationsquelleAutor s.webbandit | 2012-10-23

no distingue mayúsculas de minúsculas coincidentes en xpath?

Por ejemplo, para el xml a continuación <CATALOG> <CD title="Empire Burlesque"/> <CD title="empire burlesque"/> <CD...