1

我正在使用 IOS 6 UITableView ,我的问题是,每当我将表格视图置于编辑模式时,出现在 deletestyle ( UITableViewCellEditingStyleDelete )的表格视图单元格旁边的编辑控件与两个标签( xyzname 和 xyzcollege )重叠。我在 IOS 5 中没有这个问题(使用相同的代码)。

代码:

    - (void)viewDidLoad
     {
         [super viewDidLoad]; 
         NSString *path = [[NSBundle mainBundle]pathForResource:@"friends"ofType:@"plist"];

         NSDictionary *xyz = [[NSDictionary alloc]initWithContentsOfFile:path];

         _names = [xyz objectForKey:@"name"];
         _colls = [xyz objectForKey:@"college"];

         self.navigationItem.rightBarButtonItem = self.editButtonItem;

     }

     -(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection: (NSInteger)section
     {
         NSInteger count =_names.count;
         if(self.editing)
         {
             count++;
         }
         return count;
     }

    -(UITableViewCell*) tableView:(UITableView *)tableView cellForRowAtIndexPath:         (NSIndexPath *)indexPath
    {
         saumyaTableViewCell *cell;

         cell = [_saumyaTable dequeueReusableCellWithIdentifier:@"saumyacell"];

         if(indexPath.row < _names.count)
         {
            cell.xyzname.text = [_names objectAtIndex:indexPath.row];
            cell.xyzcollege.text = [_colls objectAtIndex:indexPath.row];
         }
         else
         {

            cell.xyzname.text = @"Add name.";
            cell.xyzcollege.text = @"Add College";
            cell.editingAccessoryType =
            UITableViewCellAccessoryDisclosureIndicator;
         }
         return cell;
    }


   -(void)setEditing:(BOOL)editing animated:(BOOL) animated
   {

      if( editing != self.editing )
      {
          [super setEditing:editing animated:animated];
          [_saumyaTable setEditing:editing animated:animated];

          NSArray *indexes = [NSArray arrayWithObject:
          [NSIndexPath indexPathForRow:_names.count inSection:0]];

          if (editing == YES )
          {
             [_saumyaTable insertRowsAtIndexPaths:indexes       withRowAnimation:UITableViewRowAnimationLeft];
          }
          else
          {
             [_saumyaTable deleteRowsAtIndexPaths:indexes
                         withRowAnimation:UITableViewRowAnimationLeft];
          }
       }
    }

   - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView  editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.row < _names.count)
    {
        return UITableViewCellEditingStyleDelete;
    }
    else
    {
        return UITableViewCellEditingStyleInsert;
    }
 }

图片说明:

1.UITableViewCell有两个标签(xyzname和xyzcollege)

2.UITableViewCellEditingStyleDelete在单元格进入编辑模式时与这两个标签重叠

如果我希望这些标签在我的视图进入编辑模式时在右侧自动设置动画,并在退出编辑模式后再次动画到它们的原始位置,该怎么办?

谢谢你

4

0 回答 0