Tengo un UILabel en un Controlador de vista de detalle, por lo que su contenido cambia según la fila de la tabla seleccionada. Tengo un problema, establecería un ancho fijo para mi UILabel y una altura dinámica dependiendo del texto. ¿Cómo puedo hacer esto? (Lo siento por mis errores, pero no soy inglés)UILabel con ancho fijo y altura flexible
Respuesta
Puede hacerlo ... hay código.
UILabel *yourlabel = [[UILabel alloc] initWithFrame:CGRectMake(x, y, 100, sizeToFit)];
yourlabel.numberOfLines = 0;
Para cualquier consulta, comenta.
Me gusta la subclase UILabel
para hacer esto por mí.
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
Para utilizar esta, importación/crear el .hy archivos .m en su proyecto. Entonces, si va a crear su UILabel
en el código, se vería algo como esto:
#import "AutosizingLabel.h"
- (void)viewDidLoad {
[super viewDidLoad];
AutosizingLabel *label = [[AutosizingLabel alloc] init];
label.text = @"Some text here";
[self.view addSubview:label];
}
Si estás utilizando un XI ter, se puede seleccionar cualquier UILabel y hacer clic en el Inspector de identidad en la barra lateral derecha para establecer su clase a AutosizingLabel
. En cualquier caso, establecer la propiedad .text
actualizará automáticamente el tamaño de la etiqueta.
Gracias. Y entonces, ¿cómo puedo usar esta subclase en el Controlador de Vista de Detalle para tener una altura dinámica para mi UILabel? –
Actualicé mi respuesta con más información sobre cómo usarla. –
Muchas gracias, voy a intentarlo ahora. –
- 1. Imagemagick: Convertir a ancho fijo, altura proporcional
- 2. Dos columnas, izquierda con ancho fijo, derecha con ancho dinámico
- 3. 3 columnas, medio con ancho flexible
- 4. Como llegar a la altura NSAttributedString a un ancho fijo
- 5. CSS: simulando ancho flexible (sin ancho mínimo) -
- 6. (máscara de Autoresizing) ancho flexible de una imagen con altura fija
- 7. Fuentes con verdadero ancho fijo en WPF
- 8. altura completa y el diseño CSS ancho
- 9. Div ancho fijo en la izquierda y div ancho fluido en la derecha
- 10. Obtener ancho de la última línea de UILabel UILabel
- 11. Especifique el ancho y la altura del gráfico
- 12. ¿Cómo eliminar la altura y el ancho?
- 13. barra lateral fijo con la altura del 100% en CSS
- 14. archivos Parse de ancho fijo
- 15. Cómo centrar un ul (NAV) que tiene ancho flexible
- 16. CSS - ancho fijo SPAN/div
- 17. ¿El ancho y la altura cambian con la orientación?
- 18. UIImageView cambiar el ancho y la altura
- 19. Altura y ancho en iPhone (/ iPad)
- 20. ¿Cómo obtener la altura del texto con ancho fijo y obtener la longitud del texto que cabe en un marco?
- 21. Determine el ancho de un ancho DIV dinámico Multivolpea de DIV 3 ancho de columna fijo
- 22. Enteros de ancho fijo en C++
- 23. Campos de ancho fijo de inserción masiva
- 24. WPF Vista en árbol con columnas de ancho fijo
- 25. Ancho de trazo fijo en SVG
- 26. Disposición de fluidos con algunas columnas de ancho fijo
- 27. Cómo ajustar el texto del botón html con ancho fijo
- 28. CSS ancho fijo en un lapso
- 29. Mantener el ancho de la tabla fijo
- 30. UILabel y numberOfLines y sizeToFit:
No puedo usar sizeToFit como un valor para la altura de CGRect, Xcode no me permite hacer esto .. Dice que es un 'identificador no declarado' –
Gracias Albert;) –
simplemente verifique esto ... enlace Creo que resolverá tu problema. http://basheerad.blogspot.com/2011/12/dynamic-width-and-height-for-uilabel-in.html – jamil