2012-09-05 282 views
0

時tableviewcell在編輯風格,使用下面的代碼刪除按鈕

- (void)didTransitionToState:(UITableViewCellStateMask)state 
{ 
[super didTransitionToState:state]; 

if(state == UITableViewCellStateShowingDeleteConfirmationMask) 
{ 

    for (UIView *v in [self subviews]) 
    { 
     if([NSStringFromClass([v class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"]) 
     {  
      NSLog(@"find"); 
      CGRect f = v.frame; 
      deleteView = v; 
      NSLog(@"delete view %@",[deleteView description]); 
      v.backgroundColor = [UIColor grayColor]; 

      v.frame = CGRectMake(200, 10, f.size.width, f.size.height); 
      UIControl *vs = [[v subviews]objectAtIndex:0]; 
      CGRect fs = vs.frame; 
      [UIView beginAnimations:nil context:nil]; 
      [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
      [UIView setAnimationDuration:1]; 
      fs.origin.x -=20; 
      vs.frame = fs; 
      [UIView commitAnimations]; 

     } 
    } 

} 

} 

用這種方式我可以改變刪除按鈕的位置,我可以改變刪除按鈕的位置。但每次出現刪除按鈕時,它都會從我的tableviewcell的右側移動到animation,最後它位於我指定的位置.....我只是想在出現之前設置按鈕幀,但現在我不知道。我的英文很差...謝謝大家..提前預感

回答

1

有兩條消息:tableView:willBeginEditingRowAtIndexPath:tableView:didEndEditingRowAtIndexPath:

我想你可以使用delegate來適當地更新表視圖的外觀。

+0

感謝您的建議......但我已經在我的tableview中使用了所有這些委託,我可以使用刪除功能。現在我只想在刪除按鈕出現之前更改其框架或位置,或者在出現刪除按鈕時停止動畫。謝謝..... – zinc