0

アプリでShakingAlertViewを使用しています。

https://github.com/lukestringer90/ShakingAlertView

IOS 6 で完全に動作します。しかし、IOS 7 に更新した後、アニメーション化されず、誤った処理のブロック関数が呼び出されませんでした。以下は、揺れ警報ビューの初期化のコードです。

currentPass = [[ShakingAlertView alloc]initWithAlertTitle:@"Enter Current Password" checkForPassword:self.pass
                                                        usingHashingTechnique:HashTechniqueMD5
                                                        onCorrectPassword:^{
                                                            isCurrentPassConfirmed = YES;
                                                            [self._accountSource willScrollToTop];
                                                            self.password.text = @"";
                                                            [self.password becomeFirstResponder];

                                                        } onDismissalWithoutPassword:^{
                                                            //NSLog(@"hi");
                                                            [self showFailedPasswordAlert];

                                                        }];
    currentPass.alertViewStyle = UIAlertViewStyleSecureTextInput;
    [currentPass show];

以下は、シェイク効果のためにアニメーション化する方法です。これは正しく呼び出されますが、効果はありません。

- (void)animateIncorrectPassword {
    // Clear the password field
    _passwordField.text = nil;

    // Animate the alert to show that the entered string was wrong
    // "Shakes" similar to OS X login screen
    CGAffineTransform moveRight = CGAffineTransformTranslate(CGAffineTransformIdentity, 20, 0);
    CGAffineTransform moveLeft = CGAffineTransformTranslate(CGAffineTransformIdentity, -20, 0);
    CGAffineTransform resetTransform = CGAffineTransformTranslate(CGAffineTransformIdentity, 0, 0);

    [UIView animateWithDuration:0.1 animations:^{
        // Translate left
        self.transform = moveLeft;

    } completion:^(BOOL finished) {

        [UIView animateWithDuration:0.1 animations:^{

            // Translate right
            self.transform = moveRight;

        } completion:^(BOOL finished) {

            [UIView animateWithDuration:0.1 animations:^{

                // Translate left
                self.transform = moveLeft;

            } completion:^(BOOL finished) {

                [UIView animateWithDuration:0.1 animations:^{

                    // Translate to origin
                    self.transform = resetTransform;
                }];
            }];

        }];
    }];

}

私を助けてください。

4

2 に答える 2

2

iOS7 ではカスタマイズできませんUIAlertview

  1. メソッドを使用してプログラムでビューを描画するUIViewのカスタムビューサブクラスを作成することをお勧めします- (void)drawRect:(CGRect)rect

  2. NSObjectそして、カスタム デリゲート プロパティを使用して、タイトル/パスワードと [OK] ボタンをカスタマイズされたアラート ビューに作成およびバインドするために使用さ れるコンテナー クラス (から継承) をもう 1 つ作成しますclickedButtonAtIndex

  3. 私の知る限り、iOS7 ではブロック/アニメーションに変更はありません。

または、このリンクを参照してくださいhttps://github.com/wimagguc/ios-custom-alertview

于 2013-10-09T09:29:54.303 に答える
1

のレイアウトがUIAlertView大幅に変更された iOS 7 では、カスタマイズや変更がほぼ不可能になっています。新しい解決策を考え出さなければなりません。

于 2013-10-09T09:04:38.217 に答える