1

テーブル ビューの編集に問題があります。

編集モードでマイナス記号の位置をセルの右側に変更しました。
問題は、ボタンが左からスライドしていて、奇妙に見えることです。
このアニメーションを変更する方法はありますか?

また、削除オプションを元に戻すとき (赤い削除ボタンが表示されているときにマイナス記号をクリックする) のアニメーションがありますが、その理由は何ですか?

問題を示すビデオは次のとおりです。

---編集---
これは私が位置を変更した方法です:

- (void)layoutSubviews {
[super layoutSubviews];


//Indent to the left instead of right
self.contentView.frame = CGRectMake(0,
                                    self.contentView.frame.origin.y,
                                    self.contentView.frame.size.width,
                                    self.contentView.frame.size.height);

if ((self.editing
    && ((state & UITableViewCellStateShowingEditControlMask)
        && !(state & UITableViewCellStateShowingDeleteConfirmationMask))) ||
    ((state & UITableViewCellStateShowingEditControlMask)
     && (state & UITableViewCellStateShowingDeleteConfirmationMask)))
{
    float indentPoints = self.indentationLevel * self.indentationWidth;

    self.contentView.frame = CGRectMake(indentPoints - 35,
                                        self.contentView.frame.origin.y,
                                        self.contentView.frame.size.width - indentPoints,
                                        self.contentView.frame.size.height);
}

//Change editAccessoryView location
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:0.0f];
//If can't use private classes (UITableViewCellDeleteConfirmationControl..), use [self.subviews objectAtIndex:0];

for (UIView *subview in self.subviews) {


    if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"]) {
        CGRect newFrame = subview.frame;
        newFrame.origin.x = 10;
        subview.frame = newFrame;
    }
    else if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellEditControl"]) {
        CGRect newFrame = subview.frame;
        newFrame.origin.x = 280;
        subview.frame = newFrame;

    }
    else if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellReorderControl"]) {
        CGRect newFrame = subview.frame;
        newFrame.origin.x = 200;
        subview.frame = newFrame;
    }
}
[UIView commitAnimations];

}

- (void)willTransitionToState:(UITableViewCellStateMask)aState {
[super willTransitionToState:aState];
self.state = aState;
}

---edit2---
マイナス記号のジャンプの問題が発生する部分は
//Change editAccessoryView の場所であることがわかりました。
それがなければジャンプはありませんが、マイナスボタンはセルの左側に戻ります.
それを回避する方法はありますか?

4

1 に答える 1

0

推測ですが、ビューを上下逆さまにしてみましたか? を使用できる場合がありUIView transformます。

(インターネットからのコード、信頼性は不明)

CGAffineTransform rotateTransform;
rotateTransform = CGAffineTransformRotate(CGAffineTransformIdentity, M_PI);
myView.transform = rotateTransform;
于 2013-03-06T20:06:25.323 に答える