相关疑难解决方法(0)

使用故事板时子类化UIWindow

我有同样的问题,如本问题所述:

我在哪里可以将我的应用程序使用的窗口从UIWindow更改为我自己的子类"MyWindow"和storyboard?

我的问题是如何在我的app委托中实现一个'window'getter方法,返回'MyWindow'子类?或者也许有其他方法可以将我的子类分配到我的应用程序的主窗口?

iphone cocoa-touch objective-c uiwindow ios

26
推荐指数
1
解决办法
8756
查看次数

iOS:如何检测摇动?

我将以下代码添加到appDelegate.m中

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
}

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
    if (motion == UIEventSubtypeMotionShake )
    {
        // User was shaking the device. Post a notification named "shake".
        [[NSNotificationCenter defaultCenter] postNotificationName:@"shake" object:self];
    }
}

- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event
{   
}

- (void)shakeSuccess
{
    // do something...
}
Run Code Online (Sandbox Code Playgroud)

然后我补充说:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    // INIT THE BACKGROUND PATH STRING

    [self refreshFields];
    [self.window addSubview:navController.view];
    [self.window makeKeyAndVisible];
    ***[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(shakeSuccess) name:@"shake" …
Run Code Online (Sandbox Code Playgroud)

shake ios

24
推荐指数
3
解决办法
3万
查看次数

简单的iPhone动作检测

我需要检测陀螺仪/加速度计何时被激活一定量.基本上是检测设备何时移动.我对Core Motion一无所知.

也许有人可以指导我参加初学者教程或其他什么.

提前致谢.

iphone xcode objective-c core-motion

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

iPhone App增加Shake手势灵敏度

在我的iPhone应用程序中,我使用摇动手势它正在工作,但需要付出很多努力才能动摇

有没有办法让它更敏感或提高灵敏度?

这是代码

 - (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
 {
      if (motion == UIEventSubtypeMotionShake)
      {
          [self performSelector:@selector(startPressed:)];  
      }
 } 
Run Code Online (Sandbox Code Playgroud)

请帮忙和建议.

谢谢

iphone objective-c shake uigesturerecognizer

9
推荐指数
1
解决办法
1554
查看次数

在AppDelegate中检测抖动

如何在Swift中的AppDelegate(整个应用程序)中检测到设备震动?

我找到了解释如何在视图控制器中执行此操作的答案,但希望在我的应用程序中执行此操作.

shake ios appdelegate swift swift3

8
推荐指数
2
解决办法
4044
查看次数

如何检测和编程为iPhone摇晃

我正试图在这个页面上实现摇动"教程",但我想我错过了一些东西.我将他的加速计功能复制到myAppViewController.m文件中并在其中放入一些nslog,以查看当我使用模拟器"摇动"功能时它是否进入该功能.调试控制台中没有显示任何内容.

http://mithin.in/2009/07/28/detecting-a-shake-using-iphone-sdk

任何人都可以解释我可能会缺少什么?还是指点教程?

我发现这看起来很有希望,但我不知道如何"把它放在一个UIView" 我如何检测有人摇动iPhone?


编辑 - 现在这是我的工作代码,因为接受了答案的建议.

这是我在3.0 iphone sdk中检测摇动手势的代码.

-(BOOL)canBecomeFirstResponder {
    return YES;
}

-(void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    [self becomeFirstResponder];
}

- (void)viewWillDisappear:(BOOL)animated {
    [self resignFirstResponder];
    [super viewWillDisappear:animated];
}


- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
    NSLog(@"{motion ended event ");

    if (motion == UIEventSubtypeMotionShake) {
        NSLog(@"{shaken state ");

    }
    else {
        NSLog(@"{not shaken state ");       
    }
}
Run Code Online (Sandbox Code Playgroud)

iphone delegates shake iphone-sdk-3.0

6
推荐指数
2
解决办法
8936
查看次数

摇动手势不起作用

我使用代码检测抖动和此代码在设备上工作,但当我在模拟器上使用摇动手势不起作用为什么?

我使用下面的代码来检测它

#define kAccelerationThreshold      2.2
#define kUpdateInterval         (1.0f/10.0f)

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
        if (fabsf(acceleration.x) > kAccelerationThreshold || fabsf(acceleration.y) > kAccelerationThreshold || fabsf(acceleration.z) > kAccelerationThreshold)
            ...
}
Run Code Online (Sandbox Code Playgroud)

iphone xcode ios4

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

在摇动iPhone时检测

我对之前发布的震动检测有疑问,这是一个提醒:

"现在......我想做类似的事情(在iPhone OS 3.0+中),只是在我的情况下我想在应用程序范围内,所以我可以在发生震动时提醒应用程序的各个部分.这就是我最终做的事情.

首先,我将UIWindow子类化.这很容易.使用MotionWindow:UIWindow等界面创建一个新的类文件(随意选择自己的,natch).添加如下方法:

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
    if (event.type == UIEventTypeMotion && event.subtype == UIEventSubtypeMotionShake) {
        [[NSNotificationCenter defaultCenter] postNotificationName:@"DeviceShaken" object:self];
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果您使用MainWindow.xib(库存Xcode模板的东西),请进入并将Window对象的类从UIWindow更改为MotionWindow或您调用它的任何内容.保存xib.如果以编程方式设置UIWindow,请在那里使用新的Window类.

现在您的应用程序正在使用专门的UIWindow类.无论您想要被告知摇晃,请注册他们的通知!像这样:

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(deviceShaken) name:@"DeviceShaken" object:nil];
Run Code Online (Sandbox Code Playgroud)

要以观察者身份移除自己:

[[NSNotificationCenter defaultCenter] removeObserver:self];
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 在哪里放通知(我有一个基于视图的应用程序)?
  2. 我必须删除自己作为观察,这是什么意思?
  3. 什么是我用来检查震动是否产生的if语句?
  4. 我怎么知道震动事件是否知道它"已在进行中"?

谢谢.

iphone objective-c

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

加速计是否适用于iphone/ipad模拟器?

据我所知,我的应用程序应该在我使用XCode中的iPad模拟器时触发加速度计事件,但事实并非如此.

我已经google了一下,似乎加速计没有在模拟器中实现,这是正确的吗?如果是这样,为什么他们会有一个"硬件 - >摇动手势"菜单选项?

我的代码如下:

.h文件:

@interface MyViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate, UIAccelerometerDelegate>{
    UIAccelerometer *accelerometer;
    //...other stuff
}
@property (nonatomic, retain) UIAccelerometer *accelerometer;
@end
Run Code Online (Sandbox Code Playgroud)

那么.m文件:

@implementation MyViewController
@synthesize accelerometer;
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
    NSLog(@"%@", [NSString stringWithFormat:@"%@%f", @"X: ", acceleration.x]);
    NSLog(@"%@", [NSString stringWithFormat:@"%@%f", @"Y: ", acceleration.y]);
    NSLog(@"%@", [NSString stringWithFormat:@"%@%f", @"Z: ", acceleration.z]);
}

- (void)viewDidLoad {
    [super viewDidLoad];
    self.accelerometer = [UIAccelerometer sharedAccelerometer];
    self.accelerometer.updateInterval = .1;
    self.accelerometer.delegate = self;
}
@end
Run Code Online (Sandbox Code Playgroud)

这看起来不错吗?

iphone accelerometer ipad ios-simulator

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

视图不能成为第一响应者

我有一个视图控制器.它是由另一个人推动的UINavigationController.在ViewController.m中:

- (BOOL)canBecomeFirstResponder { 
    return YES;
}

- (void)viewDidAppear:(BOOL)animated {
    [self.view becomeFirstResponder];
    NSLog(@"%d", [self.view isFirstResponder]);
    [super viewDidAppear:animated];
}
Run Code Online (Sandbox Code Playgroud)

它总是0.为什么?

first-responder ios

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

motionBegan和motionEnded事件的比例是1比1吗?

我正在实施此答案中描述的摇动手势,但如果我摇动手机的时间超过一秒钟,则无法调用motionEnded.

OS保证的motionBegan和motionEnded事件的比率是否为1比1,或者这是响应者链的问题,事件是否被发送到其他地方?

iphone cocoa-touch accelerometer

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

怎么做:摇动你的iPhone刷新功能

我想知道,如何实现抖动刷新功能.例如,Facebook应用程序,他们没有刷新按钮,在摇动手机时刷新数据.

我想将它包含在我的应用程序中.但我不知道这个功能的名称是什么以及如何实现它.

谁能帮我这个.

谢谢

iphone

0
推荐指数
1
解决办法
6835
查看次数

ios App检查iPhone摇晃然后拍照

我正在写一部iPhone相机应用程序.当用户即将拍照时,我想检查一下iPhone是否在摇晃并等待没有晃动的那一刻,然后抓住手机.

我该怎么做?

iphone camera objective-c ios

0
推荐指数
1
解决办法
697
查看次数