UIView позиционирование в IB Xcode 4 - PullRequest
0 голосов
/ 24 ноября 2011

enter image description here

Рассмотрим снимок экрана выше.UIView слишком сильно расположен к вершине, что приводит к частичному отключению верхней тестовой строки и появлению зазора на нижнем экране.На снимке экрана также показаны соответствующие значения позиционирования в IB: x = 0 и y = 20. Таким образом, по умолчанию существует смещение (y = 20) для очистки верхней строки состояния.Но все же показанная строка состояния покрывает часть UIView.

Запись x, y неактивна, поэтому кажется невозможным изменить ее значения.Потратили довольно много времени, но все еще не смогли решить эту, казалось бы, легкую проблему.Надеюсь, что кто-то, кто знаком с этим, может дать некоторые подсказки о том, как это должно быть сделано.

Обновление:

Сделали это в коде, как было предложено.Кажется, работает нормально.Если вы обнаружите какие-либо ошибки, пожалуйста, сообщите мне ...

- (void)viewDidLoad
{
CGRect  position_and_size;
CGPoint cg_point;
CGSize  cg_size;

[super viewDidLoad];

// setup after loading the view from its nib.

NSLog(@" --- Screen loaded --- ");

cg_size.width  = 320;
cg_size.height = 460;

cg_point.x =  0;
cg_point.y = 20;

position_and_size.origin = cg_point;
position_and_size.size   = cg_size;


[[self view] setFrame : position_and_size];

}

.

Ниже приведен последний снимок экрана:

screen shot

Ответы [ 2 ]

1 голос
/ 24 ноября 2011

Проблема заключается в том, что вы размещаете представление с высотой 460 пикселей на {0,0} в окне высотой 480 пикселей.Таким образом, первые 20 пикселей вашего представления оказываются под строкой состояния, и представление не покрывает нижние 20 пикселей окна.Это можно исправить любым из следующих способов:

  • Измените параметры автоматического изменения размера, чтобы размер представления автоматически изменялся для заполнения окна.

  • Измените размер представления в соответствии с границей окна, либо в коде, либо в IB.

  • Установите представление в {0,20}, либо в коде, либо в IB.

1 голос
/ 24 ноября 2011

Вы можете исправить это программно:

[yourSubView setFrame:self.view.bounds];

Предполагается, self.view - родительский вид, где он должен соответствовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...