Ho un UILabel in un controller Vista dettagli, quindi il suo contenuto cambia in base alla riga della tabella selezionata. Ho un problema, vorrei impostare una larghezza fissa per il mio UILabel e un'altezza dinamica a seconda del testo. Come posso fare questo? (Mi dispiace per i miei errori, ma non sono inglese)UILabel con larghezza fissa e altezza flessibile
risposta
Puoi farlo ... c'è un codice.
UILabel *yourlabel = [[UILabel alloc] initWithFrame:CGRectMake(x, y, 100, sizeToFit)];
yourlabel.numberOfLines = 0;
Per qualsiasi domanda si prega di commentare.
Mi piace sottoclasse UILabel
per fare questo per me.
AutosizingLabel.h
#import <UIKit/UIKit.h>
@interface AutosizingLabel : UILabel {
double minHeight;
}
@property (nonatomic) double minHeight;
- (void)calculateSize;
@end
AutosizingLabel.m
#define MIN_HEIGHT 10.0f
#import "AutosizingLabel.h"
@implementation AutosizingLabel
@synthesize minHeight;
- (id)init {
if ([super init]) {
self.minHeight = MIN_HEIGHT;
}
return self;
}
- (void)calculateSize {
CGSize constraint = CGSizeMake(self.frame.size.width, 20000.0f);
CGSize size = [self.text sizeWithFont:self.font constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
[self setLineBreakMode:UILineBreakModeWordWrap];
[self setAdjustsFontSizeToFitWidth:NO];
[self setNumberOfLines:0];
[self setFrame:CGRectMake(self.frame.origin.x, self.frame.origin.y, self.frame.size.width, MAX(size.height, MIN_HEIGHT))];
}
- (void)setText:(NSString *)text {
[super setText:text];
[self calculateSize];
}
- (void)setFont:(UIFont *)font {
[super setFont:font];
[self calculateSize];
}
@end
Per utilizzare questa, import/creare il file .he .m nel progetto. Poi, se si sta creando il UILabel
nel codice, sarebbe simile a questa:
#import "AutosizingLabel.h"
- (void)viewDidLoad {
[super viewDidLoad];
AutosizingLabel *label = [[AutosizingLabel alloc] init];
label.text = @"Some text here";
[self.view addSubview:label];
}
Se stai usando un XIB, è possibile selezionare qualsiasi UILabel e fare clic sul Inspector Identità nella barra laterale destra per impostare è classe a AutosizingLabel
. In entrambi i casi, l'impostazione della proprietà .text
aggiornerà automaticamente la dimensione dell'etichetta.
Grazie. E poi come posso usare questa sottoclasse nel controller di visualizzazione dei dettagli per avere un'altezza dinamica per il mio UILabel? –
Ho aggiornato la mia risposta con maggiori informazioni su come usarlo. –
Grazie mille, ci proverò adesso. –
- 1. SVG, testo, carattere con larghezza/altezza fissa
- 2. Imagemagick: Converti in larghezza fissa, altezza proporzionale
- 3. Come ridimensionare l'immagine wordpress ad altezza fissa e larghezza automatica
- 4. AutoLayout per ridimensionare in modo dinamico altezza e larghezza UILabel
- 5. layout con l'intestazione fissa e piè di pagina, la barra laterale di larghezza fissa e flessibile dei contenuti
- 6. JDialog altezza fissa
- 7. Layout colonna flessibile CSS senza altezza specificata
- 8. Flexbox: perché la crescita flessibile non funziona con il fratello con larghezza fissa?
- 9. Posizione fissa con larghezza e altezza in base al contenuto (e non al 100%)
- 10. CSS Div Immagine di sfondo Altezza fissa 100% Larghezza
- 11. Avvolgimento testo con altezza massima fissa
- 12. Impostazione larghezza e altezza
- 13. Come ottenere altezza per NSAttributoString a una larghezza fissa
- 14. Specificare larghezza e altezza del grafico
- 15. 3 colonne, centrale con larghezza flessibile
- 16. Posizione larghezza fissa 100%
- 17. Come posso avere due colonne a larghezza fissa con una colonna flessibile al centro?
- 18. UILabel in UITableViewCell con altezza dinamica
- 19. Come rimuovere altezza e larghezza?
- 20. Altezza e larghezza totali SVG
- 21. Larghezza di carosello di bootstrap e altezza
- 22. fullcalendar altezza fissa riga
- 23. Android ImageView ridimensiona l'immagine in larghezza con altezza flessibile senza ritaglio o distorsione
- 24. Scrollbar senza altezza/altezza dinamica fissa con barra di scorrimento
- 25. Overflow scorrimento sull'asse y con altezza fissa
- 26. Larghezza e altezza automatiche per immagine SVG
- 27. Tabella HTML scorrevole con intestazione fissa e colonna fissa
- 28. Altezza UILabel dinamica all'interno di UIScrollView con caricamento automatico
- 29. Android ListView altezza fissa articolo
- 30. pasticci colspan con tavolo larghezza fissa
Non posso usare sizeToFit come valore per CGRect height, Xcode non mi consente di farlo .. Si dice che è un 'identificatore non dichiarato' –
Grazie Albert;) –
basta controllare questo..link penso che risolverà il tuo problema. http://basheerad.blogspot.com/2011/12/dynamic-width-and-height-for-uilabel-in.html – jamil