小编Eri*_*gas的帖子

使用UINavigationController进行iOS 7自定义转换

此视频显示了我遇到的问题. http://www.youtube.com/watch?v=C9od_2KZAbs

我正在尝试使用UIPanGestureRecognizer创建自定义交互式推送转换.我有一个交互式转换委托(使用UIPercentDrivenInteractiveTransition)和一个过渡动画师.completeTransition:似乎不必要地重新推动推送.

以下是平移手势控制转换的方式:

- (void) panGestureRecognized:(UIPanGestureRecognizer *) gestureRecogznier {

    CGPoint translation = [gestureRecogznier translationInView:gestureRecogznier.view];

    if (gestureRecogznier.state == UIGestureRecognizerStateBegan) {

        self.interactiveTransitionAnimator = [[UIPercentDrivenInteractiveTransition alloc] init];

        EVDetailViewController *detailViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"EVDetailViewController"];
        [self.navigationController pushViewController:detailViewController animated:YES];
    }
    else if (gestureRecogznier.state == UIGestureRecognizerStateChanged) {

        CGFloat d = (translation.x / CGRectGetWidth(self.view.bounds)) * -1;
        [self.interactiveTransitionAnimator updateInteractiveTransition:d];
    }
    else if (gestureRecogznier.state == UIGestureRecognizerStateEnded) {

        if ([gestureRecogznier velocityInView:self.view].x < 0) {
            [self.interactiveTransitionAnimator finishInteractiveTransition];
        } else {
            [self.interactiveTransitionAnimator cancelInteractiveTransition];
        }

        self.interactiveTransitionAnimator = nil;
    }
}
Run Code Online (Sandbox Code Playgroud)

UINavigationControllerDelegate处理两个转换委托对象的自动售货,这是在调用pushViewController:时触发的.

过渡动画师有一个非常简单的动画:

- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext …
Run Code Online (Sandbox Code Playgroud)

iphone animation objective-c ios

10
推荐指数
1
解决办法
2881
查看次数

iOS 7自定义过渡故障

此视频显示了我遇到的问题. http://www.youtube.com/watch?v=C9od_2KZAbs

我正在尝试使用UIPanGestureRecognizer创建自定义推送交互式转换.我有一个交互式转换委托(使用UIPercentDrivenInteractiveTransition)和一个过渡动画师.

以下是平移手势控制转换的方式:

- (void) panGestureRecognized:(UIPanGestureRecognizer *) gestureRecogznier {

    CGPoint translation = [gestureRecogznier translationInView:gestureRecogznier.view];

    if (gestureRecogznier.state == UIGestureRecognizerStateBegan) {

        self.interactiveTransitionAnimator = [[UIPercentDrivenInteractiveTransition alloc] init];

        EVDetailViewController *detailViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"EVDetailViewController"];
        [self.navigationController pushViewController:detailViewController animated:YES];
    }
    else if (gestureRecogznier.state == UIGestureRecognizerStateChanged) {

        CGFloat d = (translation.x / CGRectGetWidth(self.view.bounds)) * -1;
        [self.interactiveTransitionAnimator updateInteractiveTransition:d];
    }
    else if (gestureRecogznier.state == UIGestureRecognizerStateEnded) {

        if ([gestureRecogznier velocityInView:self.view].x < 0) {
            [self.interactiveTransitionAnimator finishInteractiveTransition];
        } else {
            [self.interactiveTransitionAnimator cancelInteractiveTransition];
        }

        self.interactiveTransitionAnimator = nil;
    }
}
Run Code Online (Sandbox Code Playgroud)

UINavigationControllerDelegate处理两个转换委托对象的自动售货,这是在调用pushViewController:时触发的.

过渡动画师有一个非常简单的动画:

- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext …
Run Code Online (Sandbox Code Playgroud)

objective-c uiviewcontroller ios ios7

9
推荐指数
2
解决办法
4069
查看次数

在Swift中捕获NSJSONSerialization错误

我试图理解为什么我无法捕捉到NSJSONSerialization引发的错误.

我希望NSInvalidArgumentException引发异常并将其捕获,但应用程序崩溃了.

使用Xcode 8在Swift 3和Swift 2.3中都会发生这种情况.

斯威夫特3:

    do {
        _ = try JSONSerialization.data(withJSONObject: ["bad input" : NSDate()])
    }
    catch {
        print("this does not print")
    }
Run Code Online (Sandbox Code Playgroud)

Swift 2.3:

    do {
        _ = try NSJSONSerialization.dataWithJSONObject(["bad input" : NSDate()], options: NSJSONWritingOptions())
    }
    catch {
        print("this does not print")
    }
Run Code Online (Sandbox Code Playgroud)

此代码放在applicationDidFinishLaunching一个空白的Xcode项目中.在模拟器和设备上进行测试.

完全例外:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (__NSDate)'
Run Code Online (Sandbox Code Playgroud)

任何想法为什么catch块没有捕获这个特定的错误?

foundation ios swift

7
推荐指数
1
解决办法
1594
查看次数

在iOS上使用RSA-SHA1进行OAuth签名

我需要帮助创建一个RSA-SHA1签名,以便在iOS上的三脚OAuth实现中使用.

我能够使用CommonCrypto.h使用HMAC-SHA1执行此操作,但此库似乎不支持RSA-SHA1.

你们有没有用RSA实现OAuth签名?你能指点我一些可以找到更多信息的资源吗?

谢谢.

iphone cryptography rsa objective-c ios

4
推荐指数
2
解决办法
2173
查看次数

长时间运行的REST API

我需要连接的后端API大约需要3-4分钟才能返回响应.iOS客户端似乎在60秒(这是默认值)超时,我无法弄清楚如何延长时间.

我试图将NSURLRequest的timeoutInterval设置为一个大数字,并设置Connection:Keep-Alive标头,但我没有运气.这是我正在使用的代码,省略了一些API细节:

NSURL *url = [NSURL URLWithString:@"myAPI"];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

[request setHTTPMethod:@"POST"];

NSString *postString = @"key1=val1&key2=val2...";
[request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];

request.timeoutInterval = 600.0f;

[request setValue:@"Keep-Alive" forHTTPHeaderField:@"Connection"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
     NSLog(@"data = %@", data);
}];
Run Code Online (Sandbox Code Playgroud)

即使后端API仍在处理请求,也不会返回任何数据并且所有响应头字段都为空.

我听说我可能需要设置一个名为"socketTimout"的区间,以便套接字知道保持连接打开的时间更长,但我不知道在哪里设置它.

iphone cocoa-touch objective-c ios

2
推荐指数
1
解决办法
879
查看次数

C中的typedef函数用法

我正在尝试调用以下函数,但我无法弄清楚如何填写第三个参数.

RSA* PEM_read_RSAPrivateKey(FILE *fp, RSA **x, pem_password_cb *cb, void *u);
Run Code Online (Sandbox Code Playgroud)

查找pem_password_cb我发现:

typedef int pem_password_cb(char *buf, int size, int rwflag, void *userdata);
Run Code Online (Sandbox Code Playgroud)

我理解带有函数指针的typedef,但这似乎不是一个函数指针.任何人都可以帮我一个第三个参数的例子吗?我无权访问pem_password_cb的实现.

c c++ rsa

2
推荐指数
1
解决办法
1609
查看次数