编辑 UITableViewCell 时将 UIActivityIndicator 放在单元格中并禁用 UserInteraction
Placing UIActivityIndicator in a cell when editing UITableViewCell and disable UserInteraction
当用户单击 UITableView 中的删除按钮时(编辑打开时),UIActivityIndicator 会显示在 tableView 的中间,因为我想不出将它放在 Cell 中间的方法被删除。这是我现在使用的代码:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
self.activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
//cell.accessoryView = self.activityView;
self.activityView.center = self.tableView.center;
[self.tableView addSubview:self.activityView];
[self.activityView startAnimating];
.... rest of the code
所以 1)
第一个问题如何把indicatorView放在被删除的cell中间
2) 发生这种情况时是否可以禁用删除按钮?我不希望用户大量单击按钮。
EDIT1
我忘了说我正在为电池插座使用自定义 class。因此,在您要填充的普通 tableView 中,我使用此代码获取每个单元格
GamesInfoTableViewCell *cell1 = (GamesInfoTableViewCell *)[tableView dequeueReusableCellWithIdentifier:otherSection];
试试这个代码。它会将子视图添加到您要删除的单元格的中心。
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
UITableViewCell * cell = [tableView cellForRowAtIndexPath: indexPath];
// Setting Frame of Spinner..
CGFloat x = (cell.frame.size.width-spinner.frame.size.width)/2;
CGFloat y = (cell.frame.size.height-spinner.frame.size.height)/2;
spinner.frame = CGRectMake(x, y, spinner.frame.size.width, spinner.frame.size.height);
[cell addSubview: spinner];
[spinner startAnimating];
//Do YOUR WORK NOW
}
}
快乐编码..:)
当用户单击 UITableView 中的删除按钮时(编辑打开时),UIActivityIndicator 会显示在 tableView 的中间,因为我想不出将它放在 Cell 中间的方法被删除。这是我现在使用的代码:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
self.activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
//cell.accessoryView = self.activityView;
self.activityView.center = self.tableView.center;
[self.tableView addSubview:self.activityView];
[self.activityView startAnimating];
.... rest of the code
所以 1)
第一个问题如何把indicatorView放在被删除的cell中间
2) 发生这种情况时是否可以禁用删除按钮?我不希望用户大量单击按钮。
EDIT1
我忘了说我正在为电池插座使用自定义 class。因此,在您要填充的普通 tableView 中,我使用此代码获取每个单元格
GamesInfoTableViewCell *cell1 = (GamesInfoTableViewCell *)[tableView dequeueReusableCellWithIdentifier:otherSection];
试试这个代码。它会将子视图添加到您要删除的单元格的中心。
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
UITableViewCell * cell = [tableView cellForRowAtIndexPath: indexPath];
// Setting Frame of Spinner..
CGFloat x = (cell.frame.size.width-spinner.frame.size.width)/2;
CGFloat y = (cell.frame.size.height-spinner.frame.size.height)/2;
spinner.frame = CGRectMake(x, y, spinner.frame.size.width, spinner.frame.size.height);
[cell addSubview: spinner];
[spinner startAnimating];
//Do YOUR WORK NOW
}
}
快乐编码..:)