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 按钮并将您的自定义委托属性绑定到您的自定义警报视图中。这样我们就可以像方法一样实现我们的自定义委托 clickedButtonAtIndex方法。

  3. 据我所知,iOS7 中的块/动画没有变化。

或参考此链接https://github.com/wimagguc/ios-custom-alertview

于 2013-10-09T09:29:54.303 回答
1

iOS 7的布局发生了翻天覆地的UIAlertView变化,几乎无法自定义和更改。你将不得不想出一个新的解决方案。

于 2013-10-09T09:04:38.217 回答