我想解决的问题是:
使用UIImagePicker时,它会在设备旋转时自行调整。我不希望它这样做,而是应该始终保持纵向。我已经google了很多,并没有找到任何解决方案(只有其他人有相同的未解决的问题)。唯一的答案是使用私有API调用,我宁愿不冒这样做。
-
但是,我遇到了'method swizzling' - 一种在运行时交换方法名称的方法。我打算做什么:
向UIViewController添加一个类别,该类别定义了一些方法,例如'customShouldRotate',定义了不允许旋转的自定义行为。
在运行时使用UIViewController的默认旋转方法调用这些方法。
-
经过一番思考后,可能并不那么简单。这就是为什么 - 对以下任何答案都会非常感激。
我正在调整的方法是在UIViewController中,而不是UIImagePickerController。我不能直接在图像选择器中调情,我已经尝试通过子类化,它似乎是一个子视图的控制器,它处理旋转而不是UIImagePickerController本身。将swizzled方法传递给子类,如果没有,那么是否有解决方法来执行此操作?
它可能不是UIVmagePtroller中正在使用的UIVmageController的正常旋转方法。有什么办法可以说出来吗?
Apple方法调整会好吗?我没有使用私有API调用,但是如果他们拒绝它我也不会感到非常惊讶。
-
这整个想法是否可行/值得尝试 - 或者,如果有人以不同的方式解决了原始问题,那就更好了。
答案 0 :(得分:0)
方法调整很好:Apple使用静态分析器检查私有API。如果你可以超载,混合或做你想做的事情没有调用私有API它将不会被分析器拾取。
Apple 可能拒绝您的唯一原因是修改“标准”行为 - 但我怀疑这不会发生。最糟糕的是你的应用程序被踢回给你,你必须恢复原来的行为。