Как добавить подпредставление в табличное представление, охватывающее только ячейку таблицы, но не представление заголовка таблицы - PullRequest
1 голос
/ 01 сентября 2011

Я использую UISegmentedControl в качестве вида заголовка таблицы. Теперь я хочу добавить загрузочное представление (представление, определенное мной) только для ячеек таблицы, но не для моего заголовка. Как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 02 сентября 2011

Самый простой способ добавить вид загрузки будет выглядеть так:

// get the frame of your table header view
CGRect headerFrame = headerView.frame;

// construct a frame that is the screen minus the space for your header
CGRect loadingFrame = [[UIScreen mainScreen] applicationFrame];
loadingFrame.origin.y += headerFrame.size.height;
loadingFrame.size.height -= headerFrame.size.height;

// use that frame to create your loading view
MyLoadingView *loadingView = [[MyLoadingView alloc] initWithFrame:loadingFrame];

// add your view to the window *
[[headerView window] addSubview:loadingView];

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


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

0 голосов
/ 01 сентября 2011

Вы можете добавить это представление в нужную ячейку:

UITableViewCell *cell = [self tableView:self.tableView cellForRowAtIndexPath:indexPathOfCell];
[cell addSubview:view];
...