Me gustaría que UITextView
llene su superView
, que es UIView
en una instancia UIViewController
.xcode/iOS: Autoresize para completar una vista: ¿el tamaño de fotograma explícito es esencial?
Parece que no puedo hacer que el UITextView
haga esto únicamente mediante el uso de las propiedades especificadas por API de autoresizingMask
y autoresizesSubviews
. Establecer esto como se muestra aquí no hace nada; el UITextView
permanece pequeño aunque su superView
llena la pantalla.
// use existing instantiated view inside view controller;
// ensure autosizing enabled
self.view.autoresizesSubviews = YES;
self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight|
UIViewAutoresizingFlexibleWidth;
// create textview
textView = [[[UITextView alloc] autorelease] initWithFrame:CGRectMake(0, 0, 1, 1)];
// enable textview autoresizing
[textView setAutoresizingMask:UIViewAutoresizingFlexibleWidth|
UIViewAutoresizingFlexibleHeight];
// add textview to view
[self.view addSubview:textView];
Sin embargo, si crear instancias de mi propio punto de vista en el interior del controlador de vista, en sustitución de su propiedad '.Ver', entonces todo funciona como se esperaba, y la Textview llena su supervista:
// reinstantiate view inside view controller
self.view = [[UIView alloc]init];
// create textview
textView = [[[UITextView alloc] autorelease] initWithFrame:CGRectMake(0, 0, 1, 1)];
// enable textview autoresizing
[textView setAutoresizingMask:UIViewAutoresizingFlexibleWidth|
UIViewAutoresizingFlexibleHeight];
// add textview to view
[self.view addSubview:textView];
I' he intentado dos trozos de código dentro de todos estos inicializadores/métodos, y surge la misma situación en todos los casos:
-(id)init;
-(id)initWithFrame:(CGRect)frame;
-(void)viewDidLoad;
Soy consciente de que reinstantiating el '.Ver' de la UIViewController
es fugly, ¿alguien puede explicar lo que estoy haciendo mal? Supuse que podría solucionar el problema teniendo el código inicial de configuración de fotogramas en mi UIViewController
para cambiar el tamaño del UITextView
una vez y, a partir de entonces, autoresizing
funcionaría según lo deseado.
-(void)viewDidLoad {
textView.frame = self.view.frame;
}
... pero al parecer la view.frame no está configurado en esta etapa, que no tiene sus valores '' .size definen, por lo que una vez más Textview sigue siendo pequeño.
¿Cuál es la forma correcta de lograr lo que quiero? ¿Debo especificar explícitamente las dimensiones de pantalla completa a través del UITextView:initWithFrame
para que ocupe su supervista?
Estaría agradecido por cualquier consejo que pueda ofrecer.
¿No '' autorelease' antes init'. El orden correcto es '... alloc] init] autorelease]'. 'UIView' debería estar bien, pero' NSString's y otros clústeres de clase se perderán si usa 'autorelease' y' init' en el orden incorrecto. Lo siento por no poder ayudar a tu verdadera pregunta, sin embargo. – Yuji
Gracias Yuji, agradezco la sugerencia, ¡algo de lo que no estaba enterado! – KomodoDave