#cocoa-touch #uitableview
#cocoa-touch #uitableview
Вопрос:
В основном UITableView для RootViewController.
Как я могу добавить представление поверх табличного представления RootViewControllers с его положением относительно экрана, а не в TableView, чтобы оно не прокручивалось вместе с ним?
Примечание — это будет индикатор выполнения, показывающий новые данные о ходе загрузки таблицы.
Ответ №1:
Это помогло бы, если бы вы опубликовали свой код, но: предположительно, вы добавляете UITableView
в свой RootViewController что-то вроде этого:
[self.view addSubview:myUITableView];
Просто добавьте свой плавающий вид таким же образом (т. Е. Добавьте его в свой контроллер просмотра, а не в свой UITableView). Если вы добавите его после добавления табличного представления, оно уже будет «выше» табличного представления. В противном случае вы можете вывести его на вершину с помощью чего-то вроде этого:
[self.view bringSubviewToFront:myOverlayView];
Ваш вид наложения должен быть подклассом UIView
, и он должен установить свое собственное backgroundColor
[UIColor clearColor]
значение, чтобы сделать его прозрачным. Чтобы позволить пользователю продолжать взаимодействовать с представлением таблицы (что, по-видимому, вы хотите, чтобы это произошло), в вашем подклассе overlay переопределите hitTest:withEvent:
и верните представление таблицы (вместо возврата self
, который является поведением по умолчанию). Это передаст все прикосновения к представлению таблицы внизу.
Комментарии:
1. Вы можете установить для userinteractionenabled значение no, и это передаст все события в базовое представление, вам не нужно переопределять hitTest
2. @jrturton: да, это намного проще, чем переопределение hitTest.
3. Поскольку я нахожусь в своем классе RootViewController, я должен написать: `[self.parentViewController.view addSubview:self.myOverlayView];`, но все просто работает.