Это позволяет визуализировать, что команда все еще выполняется:
while :;do echo -n .;sleep 1;done &
trap "kill $!" EXIT #Die with parent if we die prematurely
tar zxf packages.tar.gz; # or any other command here
kill $! && trap " " EXIT #Kill the loop and unset the trap or else the pid might get reassigned and we might end up killing a completely different process
Это создаст бесконечный цикл while , который выполняется в фоновом режиме и отображает «». каждую секунду. Это отобразит .
в оболочке. Запустите команду tar
или любую другую команду. Когда эта команда завершает выполнение, то уничтожает последнее задание, работающее в фоновом режиме - это бесконечный цикл while .
Вы не можете «скрыть» раздел как таковой, но можете «удалить» его из табличного представления с помощью метода deleteSections: withRowAnimation:
. Это удалит его из представления с дополнительной анимацией, не затрагивая данные резервного копирования. (Однако вам все равно следует обновить данные, чтобы раздел не появлялся повторно.)
Дополнительная информация: Ссылка на класс UITableView
Вероятно, вам нужно удалить сам раздел из данных, лежащих в основе вашей таблицы. Я не думаю, что есть что-то, что позволяет просто скрыть раздел.
Вы можете установить количество строк в этом разделе к 0. Однако он оставит заметную пустую область, где она раньше была.
Вы также можете вернуть количество записей, которые содержат данные из функции
numberofSectionsInTableView:
метода и использовать
switch(indexPath.section)
, где вы позволяете пустым записям "провалиться" в следующий переключатель, например:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
switch (indexPath.section) {
case 0:
return <header cell>;
break;
case 1:
if(firstRecordHasData){
return <second cell>;
break;
}
case 2:
if(secondRecordHasData){
return <second cell>;
break;
}
case 3:
return <some other cell>;
break;
default:
return <a regular cell>;
break;
}
}
Я боролся с этим некоторое время, потому что мне нужно было оставить разделы в середине сгруппированной таблицы. Пробовал установить высоту ячеек, заголовков и колонтитулов на 0.0, но это не помогло. Нельзя было просто удалить определенные разделы из-за вызываемых методов в зависимости от выбранной строки. Это должно было стать огромным if...else if...else if с многочисленными вызовами подпрограмм. Рад, что вспомнил о старом добром методе switch, возможно, он поможет и вам :-)
.