Tengo una cuerda como esta
var str = "@text1 this is good @text1"
Ahora reemplace text1
con otra cadena, digamos t 1
. Puedo reemplazar el texto, pero no puedo ponerlo en negrita. Quiero poner en negrita la nueva cadena t 1
, para que la salida final sea:
@t 1 esto es bueno @t 1
¿Cómo puedo hacerlo?
Todos los ejemplos que estoy viendo están en Objective-C, pero quiero hacerlo en Swift.
Gracias por adelantado.
ios
swift
ios8
nsmutableattributedstring
usuario2413621
fuente
fuente
Respuestas:
Uso:
Resultado:
Aquí hay una forma ordenada de hacer una combinación de textos normales y en negrita en una sola etiqueta más algunos otros métodos adicionales.
Extensión: Swift 5. *
fuente
func bold(_ text:String, _ size:CGFloat)
. Agregué tamaño al negrita para poder controlarlo desde afuera. Además, me perdí laAvenirNext-Medium
fuente en esta función, así que me tomó unos minutos entender por qué no puedo ver mi fuente. Aviso.Cuando desee asignarlo a una etiqueta:
fuente
editar / actualizar: Xcode 8.3.2 • Swift 3.1
Si conoce HTML y CSS, puede usarlo para controlar fácilmente el estilo de fuente, el color y el tamaño de su cadena atribuida de la siguiente manera:
fuente
<link href=\"https://fonts.googleapis.com/css?family=Frank+Ruhl+Libre\" rel=\"stylesheet\"> <span style=\"font-family: 'Frank Ruhl Libre', sans-serif;\">שלום</span>
Si está trabajando con cadenas localizadas, es posible que no pueda confiar en que la cadena en negrita esté siempre al final de la oración. Si este es el caso, lo siguiente funciona bien:
por ejemplo, la consulta "bla" no coincide con ningún elemento
fuente
Extendí la gran respuesta de David West para que pueda ingresar una cadena y decirle todas las subcadenas que le gustaría envalentonar:
Y luego llámalo así:
Esto animará todas las subcadenas que desea en negrita en su cadena dada
fuente
Esta es la mejor forma que se me ha ocurrido. Agregue una función que pueda llamar desde cualquier lugar y agréguela a un archivo sin una clase como Constants.swift y luego puede envalentonar palabras dentro de cualquier cadena, en numerosas ocasiones llamando solo UNA LÍNEA de código:
Para ir en un archivo constants.swift:
Entonces puede simplemente llamar a esta línea de código para cualquier UILabel:
fuente
Sobre la base de las excelentes respuestas de Jeremy Bader y David West, una extensión de Swift 3:
Uso:
fuente
uso....
dos centavos...
fuente
Aceptando como válida la respuesta de Prajeet Shrestha en este hilo, me gustaría extender su solución usando la Etiqueta si se conoce y los rasgos de la fuente.
Rápido 4
fuente
Swift 4 y superior
Para Swift 4 y superior, esa es una buena forma:
En la etiqueta, el texto se ve así: "Hola Juan "
fuente
Manera súper fácil de hacer esto.
Para obtener más detalles, haga clic aquí: https://github.com/iOSTechHub/AttributedString
fuente
apply
método con la fuente que quierasEsto podria ser util
fuente
Swift 3.0
Convierta html en cadena y cambie la fuente según sus requisitos.
fuente
Data("I'm a normal text and <b>this is my bold part . </b>And I'm again in the normal text".utf8)
y establecer la codificación de caracteres en las opciones[NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: String.Encoding.utf8.rawValue]
Simplemente use un código como este:
fuente
dos líneas en Swift 4:
fuente
Uso de Swift 5.1 en
NSAttributedString.Key
lugar deNSAttributedStringKey
fuente
Para -> Buscar televisión por tamaño
Unidireccional usando NString y su rango
otro sin usar NString y su rango
swift5
fuente
Mejorando la respuesta de Prajeet Shrestha: -
Puede hacer una extensión genérica para NSMutableAttributedString que involucra menos código. En este caso, he optado por utilizar la fuente del sistema, pero podría adaptarla para poder ingresar el nombre de la fuente como parámetro.
fuente
Puede hacer esto usando el método personalizado simple escrito a continuación. Debe dar una cadena completa en el primer parámetro y el texto en negrita en el segundo parámetro. Espero que esto ayude.
uso: initalString = Soy un niño
label.attributedText = getAttributedBoldString (str: initalString, boldTxt: "Boy")
cadena resultante = soy un niño
fuente