ios7 – 我可以’刷新’UIGestureRecognizer事件吗?

ios7 – 我可以’刷新’UIGestureRecognizer事件吗?,第1张

概述在iOS 7中,Apple似乎改变了手势识别器的行为方式.以UIPinchGestureRecognizer为例.如果我在UIGestureRecognizerStateChanged中执行缓慢的重绘 *** 作,这在旧版本的iOS下可以正常工作,但在较新版本中,我的重绘通常不会在使用另一个StateChanged更新再次调用捏合手势之前呈现到屏幕上,并且再次调用慢速绘制 *** 作.在系统通过我对视图的更改实际 在iOS 7中,Apple似乎改变了手势识别器的行为方式.以UIPinchGestureRecognizer为例.如果我在UIGestureRecognizerStateChanged中执行缓慢的重绘 *** 作,这在旧版本的iOS下可以正常工作,但在较新版本中,我的重绘通常不会在使用另一个StateChanged更新再次调用捏合手势之前呈现到屏幕上,并且再次调用慢速绘制 *** 作.在系统通过我对视图的更改实际更新屏幕的可见部分之前,这种情况会反复多次发生.

我发现一个解决方案就是打电话:

[[NSRunLoop currentRunLoop] runMode: NSDefaultRunLoopMode beforeDate: [NSDate date]];

每当我收到UIGestureRecognizerStateChanged事件.这样,每次完成时,绘图都会在屏幕上呈现.但是仍然存在一个“事件滞后”的问题,其中一系列捏合事件排队等待,这样即使在我停止捏住屏幕之后,图像也会在尺寸上保持缩放.

我的问题是,是否有一种方法可以“刷新”排队的夹点事件,所以每当我得到一个UIGestureRecognizerStateChanged事件时,我都可以进行慢速绘制 *** 作,然后刷新所有其他夹点事件,这样只有最新的一个会被处理.任何人都知道这是否可行?我想我可以构建一个查看UIGestureRecognizerStateChanged事件时间的系统,并抛出与最近重绘相近的事件,但这似乎是一个黑客攻击.

- (voID) handleGlobalPinchGesture:(UIPinchGestureRecognizer*)_pinchGesture{    if (  _pinchGesture.state == UIGestureRecognizerStateBegan )    {       // stuff    return;    }    if ( _pinchGesture.state == UIGestureRecognizerStateEnded || _pinchGesture.state == UIGestureRecognizerStateCancelled )    {       // end stuff        return;    }    if (_pinchGesture.state == UIGestureRecognizerStateChanged )    {    doslowRedrawingOperationHere();    }}
解决方法 我不认为,这是手势识别器的问题,我在移动转换后的视图方面遇到了同样的问题.我已经解决了它,通过添加查看drawRect方法,并在更改视图中心之前调用 – (voID)setNeedsdisplay方法:
在视图中:

- (voID)drawRect:(CGRect)rect{    [super drawRect:rect];}

在手势识别器的动作中:

[CATransaction begin];[CATransaction setValue:@(YES) forKey:kCATransactiondisableActions];_destinationIndicatorVIEw.center = center;[self.frameVIEw setNeedsdisplay];self.frameVIEw.center = center;[CATransaction commit];

这个对我有用.

总结

以上是内存溢出为你收集整理的ios7 – 我可以’刷新’UIGestureRecognizer事件吗?全部内容,希望文章能够帮你解决ios7 – 我可以’刷新’UIGestureRecognizer事件吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1021954.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存