Подтвердить что ты не робот

IPhone: Как установить раму UIViewController?

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

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

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

  [[self view] setClipsToBounds:YES];

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

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

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

Ответ 3

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

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

OR...

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


MyView *l_aView = [[MyView alloc] initWithFrame:l_RectFrame];
...