Я бы хотел, чтобы 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
, чтобы он заполнил свой суперпредставление?
Буду благодарен за любые советы, которые вы можете предложить.