Часть UITableView теряет взаимодействие после поворота устройства

#ipad #uitableview #uiview #orientation #device-orientation

#iPad #uitableview #uiview #ориентация #ориентация устройства

Вопрос:

У меня есть UIViewController с подклассом UIView в качестве подвида, и здесь UITableView добавлен в качестве подвида этого UIView следующим образом:

 UIViewController
-UIView
--UITableView (plucked from a UITableViewController)
  

На iPad, если я загружаю контроллер представления в любой ориентации, я могу отлично взаимодействовать с табличным представлением. Однако, если я поворачиваю устройство в новую ориентацию, у меня есть код, который изменяет рамки, чтобы они соответствовали новому разрешению, но небольшая область таблицы не реагирует на прикосновения и еще много чего.

например, мы поворачиваем портрет в альбомную ориентацию: если вы представляете фигуру портрета, расположенную поверх экрана с альбомной ориентацией, эта область остается отзывчивой, но небольшая полоска справа не реагирует.

У кого-нибудь есть идеи, что я, возможно, пропустил? Заранее спасибо.

РЕДАКТИРОВАТЬ: я успешно проверил кадры CGRect всех объектов от ячеек tableview до верхнего UIViewController.

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

1. Возможно, вы изменяете размер UITableView в Интернете, но не родительский UIView?

2. Я успешно переназначил все границы фрейма рассматриваемого tableview до верхнего UIViewController, и они совпадают. Представление таблицы изначально извлекается из UIViewController, но этот другой VC выпущен — может ли tableview все еще искать своего первоначального владельца?

3. Хммм … не совсем невозможно. Зачем вам копировать его из одного VC, чтобы добавить его в другой в любом случае? Звучит не как самое элегантное решение 🙂

4. Конечно, вы абсолютно правы — я переделываю некоторые файлы из cocoacontrols для RSS-ридера для универсального приложения — оно отлично работает, если не считать этой проблемы с ориентацией на iPad.

Ответ №1:

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

вы можете проверить это, установив TableView.clipSubviews = YES;

используя это, вы обрезаете часть tableview, выходящую за пределы супервизора.

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

1. Спасибо за ответ, единственным доступным свойством является TableView.clipsToBounds, который, к сожалению, ничего не сделал при размещении во всех супер-представлениях.