iPhone: Как установить рамку UIViewController? - PullRequest
19 голосов
/ 08 февраля 2011

У меня есть корневой UIViewController, который я добавляю другим UIViewController как подпредставления.В настоящее время каждое из подпредставлений находится слишком низко (скрывая мою пользовательскую панель вкладок сборки).Когда я пытаюсь сделать что-то вроде следующего, это не работает:

// Test setting frame size to see if it works
self.view.frame = CGRectMake(0, 0, 200, 200);

Это никак не влияет на размер кадра.

Итак, мой вопрос, как можноЯ установил свой фрейм, когда UIViewController инициализируется после того, как он добавлен как подпредставление?

Ответы [ 3 ]

21 голосов
/ 08 февраля 2011

@ Ник, я думаю, когда вы добавляете это другое представление, в это время вы должны определить размер кадра других представлений следующим образом:

Someviewcontroller *c = initWithNibName
c.view.frame = CGRectMake(0, 0, 200, 200);
[self addSubView:c];

Я не знаю, будет ли это работать, но это что-то вродеэто.

6 голосов
/ 08 февраля 2011

Во-первых, убедитесь, что ваш кадр на самом деле не меняет размер. Вероятно, он / есть / изменяет размер, но вы ожидаете, что он обрезает его содержимое; это поведение не включено по умолчанию в UIView, и его необходимо установить с помощью:

  [[self view] setClipsToBounds:YES];

Чтобы перепроверить и убедиться, что размер вашего кадра не изменился после установки нового кадра, попробуйте записать это:

  NSLog(@"New frame is: %@", NSStringFromCGRect([[self view] frame]));

или просто установить точку останова после изменения и проверить значение в вашем отладчике.

4 голосов
/ 27 мая 2011

Тогда всегда есть ...

// Screen, less StatusBar
CGRect l_RectFrame = [UIScreen mainScreen].applicationFrame;

ИЛИ ...

// Entire Screen
CGRect l_RectFrame = [UIScreen mainScreen].bounds;


MyView *l_aView = [[MyView alloc] initWithFrame:l_RectFrame];
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...