Я хотел бы, чтобы UITextView
заполнил свой superView
, который является простым UIView
внутри экземпляра UIViewController
.
Похоже, что я не могу сделать UITextView
делать это только с использованием свойств, специфицированных API autoresizingMask
и autoresizesSubviews
. Установка этих параметров, как показано здесь, ничего не делает; UITextView
остается маленьким, даже если его superView
заполняет экран.
// 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];
Однако, если я создаю экземпляр собственного представления внутри контроллера представления, заменив его свойство .view, тогда все будет работать так, как ожидалось, и textView заполнит его супервью:
// 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];
Я пробовал оба куска кода внутри всех этих инициализаторов/методов, и такая же ситуация возникает в каждом случае:
-(id)init;
-(id)initWithFrame:(CGRect)frame;
-(void)viewDidLoad;
Я понимаю, что переустановка ".view" UIViewController
неуклюж, может кто-нибудь объяснить, что я делаю неправильно? Я предположил, что смогу преодолеть проблему, установив исходный код настройки рамки в моем UIViewController
, чтобы изменить размер UITextView
один раз, а после этого autoresizing
будет работать по желанию.
-(void)viewDidLoad {
textView.frame = self.view.frame;
}
... но, казалось бы, view.frame не настроен на этом этапе, у него не определены его значения .size, поэтому еще раз textView остается небольшим.
Какой правильный способ добиться того, чего я хочу? Должен ли я явно указывать полноэкранные размеры с помощью UITextView:initWithFrame
, чтобы он заполнил свой супервизор?
Буду благодарен за любые советы, которые вы можете предложить.