IPhone: Как установить раму UIViewController?
У меня есть корневой UIViewController, который я добавляю в UIViewController как subviews. В настоящее время каждое из подвью слишком низкое (покрытие моей настраиваемой вкладки). Когда я пытаюсь сделать что-то вроде следующего, это не работает:
// Test setting frame size to see if it works
self.view.frame = CGRectMake(0, 0, 200, 200);
Это не влияет на размер кадра.
Итак, мой вопрос в том, как я могу установить свой фрейм, когда UIViewController инициализируется после его добавления в качестве подвью?
Ответы
Ответ 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];
...