2

UIAlertView をサブクラス化し、関数をオーバーライドします

[- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated];

IOS6 では、[OK] ボタンを押すと呼び出されます。しかし、IOS7 では機能しません。

なぜ機能しないのですか?OKボタンを押すと[alertView textFieldAtIndex:0]、入力が真かどうかを確認したい。そうでない場合、alertView は閉じられず、alertView に揺れるアニメーションを追加します。この効果を実感するにはどうすればよいですか?

ありがとうございました

次のように関数をオーバーライドします。

// Override to customise when alert is dimsissed
- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated {

    if (_shakingDelegate && [_shakingDelegate respondsToSelector:@selector(alertView:canDismissWithClickedButtonIndex:)]) {
        BOOL canDismiss = YES;
        canDismiss = [_shakingDelegate alertView:self canDismissWithClickedButtonIndex:buttonIndex];
        if (canDismiss) {
            [super dismissWithClickedButtonIndex:buttonIndex animated:animated];
        }
    }
}

IOS 7 でボタンを押しても呼び出されません。

4

1 に答える 1

0

申し訳ありませんが、IOS 7 で UIALertView をサブクラス化することはできません

iOS 7でレイアウトが変更されたと思うので(試していません)

独自のビューをアラートビューとして作成します...お役に立てば幸いです

于 2013-11-04T06:52:37.567 に答える