2014-07-11 2 views
0

Хорошо, поэтому мой вопрос звучит глупо, потому что, честно говоря, это так. Поэтому программист, с которым я работаю, решил разместить UITablViewController внутри UIView. Проблема в том, что это делается во всем приложении, и это уже довольно далеко в процессе реализации. Я поставил контроль обновления на UITableViewController так:UITableView позиционирование внутри UIView

[self.categoryList addSubview:self.refreshControl]; 

Так вот где мой вопрос начинает сгиб. Без нижеприведенной логики UITableView сдвигается ниже (контроль обновления отлично виден). Однако, если я не использую этот код, я получаю неудобный пробел: (Но, чтобы подчеркнуть, контроль обновления отлично виден без этой логики.)

if([[UIDevice currentDevice].systemVersion floatValue]>=7.0) 
     [self.categoryList setFrame:CGRectMake(0, -18, 320, self.categoryList.frame.size.height+35)]; 

Awkward разрыв без кода:

//////////////////

RefreshControl работы

/////////////////

Но вот проблема. Эта логика заставляет элемент управления обновлением скрываться за навигационной панелью. Я понимаю, что использование UITableviewController естественно устраняет эту проблему. Но, поскольку мы до сих пор находимся в этом приложении уже с помощью UIViewcontroller, я думаю, что лучше всего придерживаться того, что мы получили. Итак, как бы я мог правильно расположить этот список UITableView без контроля обновления, скрывающегося за навигационной панелью? Надеюсь, я четко объяснил свою проблему для всех.

+0

Является ли этот промежуток 44px высоким? И вы используете 'UINavigationController'? – Oxcug

+0

Не уверен в вашем первом вопросе. Второй вопрос - да. – user3817163

ответ

1

Похоже, вы столкнулись с проблемой, с которой я столкнулся с UIScrollView. К сожалению, это ошибка, когда UIScrollView размещен так, что он ближе всего к NavigationBar. Он автоматически вставит scrollview на высоту UINavBar. Поэтому единственным реальным решением, которое я нашел, является:

[myView setContentInset:UIEdgeInsetsMake(-self.navigationController.navigationBar.frame.size.height, 0, 0, 0)]; 
Смежные вопросы