A melhor resposta é aquela com o método de extensão .withTraits () de @Maksymilian Wojakowski
Não há reembolso Não há retorno
senhor senhor como conjunto de estilo caixa de texto em negrito sem tamanho declarar c objetivo
Ramani Hitesh
3
Isso é problemático, pois você está usando um nome de fonte fixo. Como isso está sujeito a alterações, essa não é uma boa solução. A resposta de Maksymilian Wojakowski é melhor e muito mais flexível.
Raio Wojciechowski
274
Não tente brincar com os nomes das fontes. Usando o descritor de fontes, você não precisa de nomes:
UILabel* label =[[UILabel alloc] init];// use your label object instead of thisUIFontDescriptor* fontD =[label.font.fontDescriptor
fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitBold|UIFontDescriptorTraitItalic];
label.font =[UIFont fontWithDescriptor:fontD size:0];
Não sei por que isso não recebeu mais votos! Para fontes em que você não tem um estilo negrito ou itálico, isso é ótimo!
Chris Príncipe
4
Ahhh. Eu vejo por que talvez isso não seja tão popular. Apenas disponível em iOS7 e acima ...
Chris Príncipe
3
Não sei se isso deve ser considerado no NDA, mas com a semente GM Xcode6 e iOS8, estou recebendo um descritor de fonte nulo de volta para uma fonte personalizada, onde não era nulo no iOS7.
Chris Prince
@Maksymilian podemos recusar esta em algum lugar método em várias etiquetas ou seja: uitableview
Majid Bashir
2
Apenas uma observação rápida, já que esta resposta é muito útil: return withTraits(.TraitBold, .TraitCondensed)provavelmente deve return withTraits(.TraitBold, .TraitItalic)corresponder ao nome da função.
Mas aqui está a grande questão: além de usar fontWithName: @ "Arial-Light", como você especifica os outros pesos na sua captura de tela? Tudo traz o boldSystemFontSize (de: __), mas e se alguém quiser luz ou luz ultraleve?
Dave G
6
Eu tenho o mesmo problema que precisa aplicar negrito e itálico em um rótulo e botão. Você pode simplesmente usar o seguinte código para obter esse efeito:
Eu acho que, você quis dizer "Arial", e não "Ariel" :)
MMMM
Para Arial, não está funcionando. Mas, está trabalhando para Helvetica-BoldOblique. Veja a documentação do UIFont aqui iphonedevwiki.net/index.php/UIFont
sudip
1
Você quer dizer "HelveticaNeue", não "Arial" :)
jpmartineau
e se adicionarmos nossa fonte personalizada .. ??
Majid Bashir
6
Com a fonte padrão do sistema iOS 7, você usará helvetica neue bold se quiser manter a fonte padrão do sistema.
Como já foi mencionado nessas respostas, você só precisa do nome da fonte correto . Acho que o iOSFonts.com é o recurso mais útil para saber exatamente qual nome usar.
Embora a resposta fornecida por @tolbard seja incrível e funcione bem!
Sinto que criar uma extensão para algo que pode ser alcançado em apenas uma linha de código seria um exagero.
Você pode obter um estilo em negrito e itálico para o mesmo texto labelconfigurando a propriedade da fonte usando UIFontDescriptorcomo mostrado abaixo no exemplo abaixo usando o Swift 4.0 :
Muitas vezes, o texto em negrito é considerado em uma arquitetura de informações em outro nível e, portanto, não possui negrito e regular em uma linha, portanto, você pode dividi-lo em dois rótulos / textViews, um regular e em negrito e itálico. E use o editor para escolher os estilos de fonte.
Respostas:
Há uma lista de nomes de fontes que você pode definir no lugar do atributo 'fontWithName'. O link está aqui
fonte
Não tente brincar com os nomes das fontes. Usando o descritor de fontes, você não precisa de nomes:
size:0
significa 'manter o tamanho como está'Com o Swift, tente a seguinte extensão:
Então você pode usá-lo desta maneira:
ou até adicionar características adicionais, como Condensado:
Atualização para o Swift 4:
Use-o da seguinte maneira:
myLabel.font = myLabel.font.bold
ou
myLabel.font = myLabel.font.italic
ou
myLabel.font = myLabel.font.with(traits: [ .traitBold, .traitCondensed ])
Atualização para o Swift 5
fonte
return withTraits(.TraitBold, .TraitCondensed)
provavelmente devereturn withTraits(.TraitBold, .TraitItalic)
corresponder ao nome da função.@ Eddinator, dê uma olhada nisso ..
use qualquer uma das opções acima na hora que desejar
fonte
Você pode definir qualquer estilo de fonte, família, tamanho para o rótulo, clicando na letra "T" no campo Fonte .
fonte
Eu tenho o mesmo problema que precisa aplicar negrito e itálico em um rótulo e botão. Você pode simplesmente usar o seguinte código para obter esse efeito:
fonte
Com a fonte padrão do sistema iOS 7, você usará helvetica neue bold se quiser manter a fonte padrão do sistema.
Ou você pode simplesmente chamá-lo:
fonte
Swift 3
Negrito:
let bondFont = UIFont.boldSystemFont(ofSize:UIFont.labelFontSize)
Itálico:
let italicFont = UIFont.italicSystemFont(ofSize:UIFont.labelFontSize)
fonte
você também pode usar a fonte de rótulo / botão em negrito
fonte
Fiz uma variação da resposta de maksymilian wojakowski onde você pode adicionar ou remover uma característica
exemplo
útil ao reutilizar a célula e você deseja remover o itálico colocado em um rótulo em uma célula anterior
fonte
Recentemente, escrevi um post sobre as restrições da API do UIFont e como resolvê-lo. Você pode ver aqui
Com o código que forneço lá, você pode obter o UIFont desejado da maneira mais fácil:
UIFont *myFont = [FontResolver fontWithDescription:@"font-family: Helvetica; font-weight: bold; font-style: italic;"];
E defina-o como UILabel (ou o que for) com:
myLabel.font = myFont;
fonte
Como já foi mencionado nessas respostas, você só precisa do nome da fonte correto . Acho que o iOSFonts.com é o recurso mais útil para saber exatamente qual nome usar.
fonte
Exemplo de texto em negrito:
Exemplo de texto em itálico:
fonte
Embora a resposta fornecida por @tolbard seja incrível e funcione bem!
Sinto que criar uma extensão para algo que pode ser alcançado em apenas uma linha de código seria um exagero.
Você pode obter um estilo em negrito e itálico para o mesmo texto
label
configurando a propriedade da fonte usandoUIFontDescriptor
como mostrado abaixo no exemplo abaixo usando o Swift 4.0 :Outras opções incluem:
Para mais informações sobre o significado desses traços simbólicos? visite aqui
fonte
Atualizando a incrível resposta de Maksymilian Wojakowski para o Swift 3
fonte
Isto é muito simples. Aqui está o código.
Isso irá ajudá-lo.
fonte
Só quero mencionar isso,
Eles têm resultados diferentes ...
fonte
Muitas vezes, o texto em negrito é considerado em uma arquitetura de informações em outro nível e, portanto, não possui negrito e regular em uma linha, portanto, você pode dividi-lo em dois rótulos / textViews, um regular e em negrito e itálico. E use o editor para escolher os estilos de fonte.
fonte
Com o Swift 5
fonte