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];

        }
    }

}

}

この方法を使用して、削除ボタンの位置を変更できます。しかし、削除ボタンが表示されるたびに、テーブルビューセルの右側から移動し、animation最終的に指定した位置に配置されます.....表示される前にボタンフレームを設定したいだけですが、今はわかりません。私の英語は下手です...みんなありがとう..よろしくお願いします

4

1 に答える 1

1

2つのメッセージがあります:tableView:willBeginEditingRowAtIndexPath:tableView:didEndEditingRowAtIndexPath:

delegateを使用して、テーブルビューの外観を適切に更新できると思います。

于 2012-09-05T11:13:20.080 に答える