我对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) 有时(意思是经常)当我尝试从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 …