J'ai le code suivant:
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0.0, 0.0, 25, 25);
[[button layer] setCornerRadius:5.0f];
[[button layer] setMasksToBounds:YES];
[[button layer] setBackgroundColor:[[UIColor redColor] CGColor]];
[button.titleLabel setFrame:CGRectMake(0,0, 25, 25)];
[button setTitle:[NSString stringWithFormat:@"%@", [[topics objectAtIndex:indexPath.row] unread]] forState:UIControlStateNormal];
Le problème est que lorsque la chaîne dans le texte n'est pas longue, elle s'affiche correctement (1-2 chiffres). Cependant, quand il est assez long (3 ++ chiffres), tout ce que je peux voir est un bouton rouge, sans texte à l'intérieur. Comment régler cela?
Je ne pense pas que:
[button.titleLabel setAdjustsFontSizeToFitWidth:YES];
fait le travail, non?
ios
objective-c
adit
la source
la source
titleButton.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
Réponses:
Essaye ça:
Je ne sais pas pourquoi cela fait l'affaire, mais c'est le cas :)
la source
numberOfLines
à 0devrait faire le travail seul si vous utilisez la mise en page automatique et avez défini une contrainte sur la largeur du bouton.
Les autres options (facteur d'échelle minimum, nombre de lignes, etc.) peuvent toujours être utilisées pour personnaliser davantage en fonction de vos besoins, mais ne sont pas obligatoires.
la source
La réponse d'EliBud ne fonctionne pas sur iOS 8. J'ai trouvé une solution qui fonctionne sur iOS 8. Voici un code swift:
Vous pouvez jouer avec le label? .LineBreakMode car j'ai constaté que les résultats varient selon les modes de pause.
la source
dans le dernier swift cela semble fonctionner pour moi
la source
Solution iOS 10.3 basée sur les autres réponses ici:
Personne n'a
baselineAdjustment
encore mentionné ; J'en avais besoin parce que l'étiquette du bouton est désalignée verticalement après avoiradjustsFontSizeToFitWidth
pris effet. ApplebaselineAdjustment
documentation:FWIW, je n'ai jamais pu obtenir l'étiquette parfaitement alignée.
la source
adjustsFontSizeToFitWidth
ne fonctionnait pas pour moi jusqu'à ce que je définisse une contrainte de largeur sur mon bouton dans Interface Builder.La définition de la contrainte a empêché le bouton de grossir et donc de ne pas se rendre compte qu'il devait réduire le texte.
la source
Extension Swift 4
la source
Solution Xamarin.iOS
J'ai fini par définir la taille de la police pour m'assurer que la police était «grande» avant que le système ajuste la taille pour l'adapter.
la source
basé sur la réponse de Nik Kov:
la source
La solution ci-dessous a fonctionné pour moi:
La documentation du développeur explique cette propriété comme suit:
la source
Dans iOS 13.1 avec Swift 5, je devais prévoir
contentEdgeInsets
également d'ajuster les rembourrages.la source