#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 анимируется, а затем вскоре отключается.