小编Dun*_*ern的帖子

如果用户在负方向上平移x和y,UIPanGestureRecognizer不会切换到"结束"或"取消"状态

我对UIPanGestureRecognizer有一点问题.如果用户平移到左上角(表示负x和y方向),则识别器不会报告UIGestureRecognizerStateEnded状态

如果用户抬起手指时任何方向为正,则状态更改为UIGestureRecognizerStateEnded,但如果两个方向均为负或零,则仅停止报告操作.

这很糟糕,因为我隐藏了一些叠加视图,只要用户拖动某些内容并且这些视图在失败的情况下不会返回.

当然我可以设置一个NSTimer来重新显示一段时间后再次显示覆盖,但我可以看到我的代码中没有明显的错误,我希望它干净.

我错过了什么吗?它是Apple Bug吗?

初始化是这样的:

pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panRecognized:)];
[self addGestureRecognizer:pan];
[pan release];
Run Code Online (Sandbox Code Playgroud)

处理函数如下所示:

- (void)panRecognized:(UIPanGestureRecognizer *)gestureRecognizer {
    switch ([gestureRecognizer state]) {
        case UIGestureRecognizerStateBegan:
            // fade some overlaying views out
            break;
        case UIGestureRecognizerStateEnded:
        case UIGestureRecognizerStateCancelled:
        case UIGestureRecognizerStateFailed:
            // fade in the overlays
            break;
        default:
            break;
    }

    // handle panning
}
Run Code Online (Sandbox Code Playgroud)

gesture-recognition pan ipad uigesturerecognizer ios

13
推荐指数
1
解决办法
5596
查看次数

LLDB和"<注册XY不可用>"

有时(意思是经常)当我尝试从iPad应用程序调试崩溃时,LLDB决定不太有用,并且变量(堆栈或类成员)的打印无法工作.

如果我在左侧的调试窗口中右键单击(或按住CTRL键并单击)一个变量,然后单击"打印描述",则会收到如下错误消息:

Printing description of error:
(NSURLError *) error = <register sp is not available>
Run Code Online (Sandbox Code Playgroud)

要么

Printing description of error:
(NSURLError *) error = <register ebp is not available>
Run Code Online (Sandbox Code Playgroud)

如果我自己尝试使用调试控制台,我会得到这样的结果:

(lldb) po error
(NSError *) $3 = 0x2124fc10 [no Objective-C description available]
Run Code Online (Sandbox Code Playgroud)

然后右键单击似乎开始工作并产生以下结果:

Printing description of error:
(NSURLError *) error = 0x2124fc10
Run Code Online (Sandbox Code Playgroud)

但我得到的只是内存地址,description它似乎无法调用它.如果我尝试发送description消息,则会发生这种情况:

(lldb) po [error description]
error: Execution was interrupted.
The process has been returned to the state before execution.
Run Code Online (Sandbox Code Playgroud)

所以这也没有帮助.可以做些什么来使调试器再次可用?我不得不赶上崩溃,但每次我都能挑起它,上面发生了,我不知道如何得到错误的核心.

我用谷歌搜索"注册不可用lldb",但没有发现任何东西,只是一些pastebin日志,没有答案.

仅供参考:使用Xcode 4.5.2,iOS SDK …

debugging xcode ios lldb

3
推荐指数
1
解决办法
3652
查看次数