我想测试我的应用程序处理方向更改(纵向/横向)的能力.我目前正在使用
KIF,据我所知,它无法做到这一点.有没有办法以编程方式为iOS模拟器模拟旋转事件?
我不在乎它是否是一些未记录的私有API或黑客,因为这只会在测试期间运行,并且不会成为生产构建的一部分.
解决方法
这是实现这一目标的一步:
+ (KIFTestStep*) stepToInterfaceOrientation: (UIInterfaceOrientation) toInterfaceOrientation { NSString* orientation = UIInterfaceOrientationIsLandscape(toInterfaceOrientation) ? @"Landscape" : @"Portrait"; return [KIFTestStep stepWithDescription: [NSString stringWithFormat: @"Rotate to orientation %@",orientation] executionBlock: ^KIFTestStepResult(KIFTestStep *step,NSError *__autoreleasing *error) { if( [UIApplication sharedApplication].statusBarOrientation != toInterfaceOrientation ) { UIDevice* device = [UIDevice currentDevice]; SEL message = NSSelectorFromString(@"setOrientation:"); if( [device respondsToSelector: message] ) { NSMethodSignature* signature = [UIDevice instanceMethodSignatureForSelector: message]; NSInvocation* invocation = [NSInvocation invocationWithMethodSignature: signature]; [invocation setTarget: device]; [invocation setSelector: message]; [invocation setArgument: &toInterfaceOrientation atIndex: 2]; [invocation invoke]; } } return KIFTestStepResultSuccess; }]; }
注意:将设备平放在桌面上,或者加速度计更新会将视图旋转回来.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。