Позиционирование вложенных представлений представления UITableViewController

#objective-c #uikit #uitableview

#objective-c #uikit #uitableview

Вопрос:

Я добавляю UIView подкласс к UITableViewController подклассу, подобному этому:

 [self.view addSubview:myUIView];
  

Размеры myUIView составляют width = 320 и height = 100. Предположим, я все делаю в портретном режиме. Когда я устанавливаю рамку myUIView в CGRectMake(0, 480 - 100, 320, 100) нижней части myUIView, она отключается. Как я могу установить фрейм myUIView таким образом, чтобы он не был обрезан?

Обновление: высота отрезанной части равна высоте строки состояния высоте панели навигации. Я думаю UIView , что добавляется к a UIScrollView ( UITableViewController представление UITableView , которое является наследуемым UIScrollView ), которое прокручивается вниз (расстояние, равное отрезанной части UIView).

Комментарии:

1. Это нижние 20 пикселей, то есть высота строки состояния?

2. Это более 20 пикселей. Я считаю, что это связано с self.view UITableView тем, что a наследует UIScrollView .

Ответ №1:

Есть ли у вас панель состояния / навигации / вкладок? если это так, их высоту необходимо будет вычесть из высоты экрана 480 пикселей. Вы также могли бы упростить себе задачу, сделав что-то вроде этого

 CGFloat height = 100;
myUIView.frame = CGRectMake(0, self.view.frame.size.height - height, self.view.frame.size.width, height)
  

Комментарии:

1. Возможно, вам также придется настроить размер вашего табличного представления. В противном случае некоторые строки могут быть просто закрыты вашим представлением, и теперь у вас есть способ получить к ним доступ.

2. Это нормально, если некоторые строки в таблице будут временно закрыты. UIView анимируется, а затем вскоре отключается.