显示器画面运动时抖动,如何解决?谢谢!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了显示器画面运动时抖动,如何解决?谢谢!相关的知识,希望对你有一定的参考价值。
我用的ati 9000显卡,刷新频率85,桌面没有运动时一切正常,当浏览网页拉滚动条时、进入3d游戏时、小窗口移动时都会抖动,尤其左右抖动厉害!改用美格796fd2显示器,三菱显示器都会抖动!用ati控制面板,进入显示,进入高级调整同步的所有情况都无法解决问题,监视器是默认的监视器。
我前些日子用的这个显卡没有问题的哟,我旁边没有干扰!插座也是单独的!问题应该在显卡上,换一块显卡又正常,尝试擦金手指和apg擦槽都无用。我装过很多次驱动了,包括ati_6-9_xp-2k_dd_35774和ATi_DNA_drv4668以及ati_6-4_xp-2k_dd_ccc_wdm_enu_31959都不行,,是台式机!设备管理器中硬件旁没有黄色的?或!,好好的。还有播放视频的时候也抖动,播放暂定时又正常了!
如何在 iPhone 中检测抖动运动
【中文标题】如何在 iPhone 中检测抖动运动【英文标题】:How to detect shake motion in iPhone 【发布时间】:2011-05-18 09:19:50 【问题描述】:在 iPhone 设备的抖动上,我想调用一些函数,我不知道如何识别抖动,所以我尝试了一些链接并尝试了此代码
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event if(event.type == UIEventSubtypeMotionShake) NSLog(@"调用"); [self.view setBackgroundColor:[UIColor greenColor]]; - (BOOL)可以成为第一响应者 返回是;可惜没有运气所以请你告诉我如何做同样的事情
感谢和问候
【问题讨论】:
你在哪里试过那个代码? 在uiview控制器子类文件中 @Radix,我在 UIWindow 子类中使用了它,并使用 NSNotification 通知其他控制器发生抖动事件。如果我没记错的话,在 UIController 子类中使用该代码对我也不起作用 @Vladimir :嘿,猜猜我得到的代码是什么我需要做的就是添加这段代码 - (void)viewDidAppear:(BOOL)animated [super viewDidAppear:animated]; [自己成为FirstResponder];它是因为 UIResponder 摇动事件响应第一响应者,就我在文档中读到的并且让这件事正常工作.... @Radix,嗯,好点。发布该解决方案作为您问题的答案并接受它 - 这样其他人就可以更轻松地找到您的解决方案 【参考方案1】:根据上面讨论的 cmets,我正在回答我的问题,以便其他人可以阅读我得到的解决方案
在 UIResponder 类文档中,据说运动事件只会响应第一响应者,所以我所做的只是添加了一个小函数,这对我有用,所以这是我的解决方案
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event if(event.type == UIEventSubtypeMotionShake) NSLog(@"调用"); [self.view setBackgroundColor:[UIColor greenColor]]; - (BOOL)可以成为第一响应者 返回是;现在我仍然无法检测到任何抖动运动,所以我要做的就是让我的视图控制器成为第一响应者,这是我使用的代码
- (void)viewDidAppear:(BOOL)animated [超级 viewDidAppear:动画]; [自己成为FirstResponder];我已经完成了
这是我想出的解决方案
感谢和问候
【讨论】:
谢谢!像魅力一样工作! 它在晃动 iPhone 时的工作及其检测。但是有什么方法可以继续检测抖动吗?【参考方案2】:你可以做这样的事情......
首先...
在 App 的 Delegate 中设置 applicationSupportsShakeToEdit 属性:
- (void)applicationDidFinishLaunching:(UIApplication *)application
application.applicationSupportsShakeToEdit = YES;
[window addSubview:viewController.view];
[window makeKeyAndVisible];
其次……
在视图控制器中添加/覆盖 canBecomeFirstResponder、viewDidAppear: 和 viewWillDisappear: 方法:
-(BOOL)canBecomeFirstResponder
return YES;
-(void)viewDidAppear:(BOOL)animated
[super viewDidAppear:animated];
[self becomeFirstResponder];
- (void)viewWillDisappear:(BOOL)animated
[self resignFirstResponder];
[super viewWillDisappear:animated];
第三...
将 motionEnded 方法添加到您的视图控制器:
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
if (motion == UIEventSubtypeMotionShake)
// your code
如果第一个答案没有,那应该可以工作,而且这只是快速输入而不是测试:)
【讨论】:
【参考方案3】:要在应用程序的所有屏幕上全局处理抖动,您可以继承 UIWindow 并实现 motionEnded,因为事件会在响应者链中冒泡,直到它到达窗口对象。使用 Xamarin 的示例:
public class MyWindow : UIWindow
public MyWindow(CoreGraphics.CGRect frame)
: base (frame)
public override void MotionEnded (UIEventSubtype motion, UIEvent evt)
if (motion == UIEventSubtype.MotionShake)
Console.WriteLine ("Shake received");
接下来,在 AppDelegate 中,实现 window 方法以返回 UIWindow 子类的实例。使用 Xamarin 的示例:
public class AppDelegate : UIApplicationDelegate
UIWindow _window;
public override UIWindow Window
get
if (_window == null)
_window = new MyWindow (UIScreen.MainScreen.Bounds);
return _window;
set
// ...
瞧,整个应用都会处理抖动。
【讨论】:
【参考方案4】:SSEventListener 让事情变得更简单。您的视图控制器不再需要覆盖motionEnded:withEvent:
!使用SSEventListener
,您可以像这样简单地监听抖动事件:
[viewController ss_setShakeEventListener:^ ... ];
【讨论】:
以上是关于显示器画面运动时抖动,如何解决?谢谢!的主要内容,如果未能解决你的问题,请参考以下文章