gpt4 book ai didi

ios - 出于测试目的模拟 iOS 中的方向变化

转载 作者:可可西里 更新时间:2023-11-01 03:08:20 25 4
gpt4 key购买 nike

我想测试我的应用处理方向变化(纵向/横向)的能力。我目前正在使用 KIF据我所知,它不能这样做。有没有办法以编程方式为 iOS 模拟器模拟旋转事件?

我不关心它是否是一些未记录的私有(private) API 或 hack,因为它只会在测试期间运行,不会成为生产构建的一部分。

最佳答案

这是实现这一目标的一个步骤:

+ (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;
}];
}

注意:请将您的设备平放在 table 上,否则加速度计更新会将 View 旋转回来。

关于ios - 出于测试目的模拟 iOS 中的方向变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11080077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com