问题:最近在iPad开发中遇到的一个调用相册的横竖屏问题,正常调用相册不管iPad是横竖屏,开启的相册都是竖屏的---不多说直接上代码
解决:给UIImagePickerViewController写一个category 实现以下代码
#import<UIKit/UIKit.h>
@interface UIImagePickerController (MyImagePicker)
- (BOOL)shouldAutorotate;
- (NSUInteger)supportedInterfaceOrientations;
@end
#import "UIImagePickerController+MyImagePicker.h"
@implementation UIImagePickerController (MyImagePicker)
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscape;
}
@end
然后-->开启相册的时候通知Appdelegate,实现UIInterfaceOrientationMask=UIInterfaceOrientationMaskAll 如下代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
_myInterfaceOrientation = UIInterfaceOrientationMaskLandscape;
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(changeDirection:) name:@"changeDirection" object:nil];
return YES;
}
- (void)dealloc{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void)changeDirection:(NSNotification *)notice{
if ([notice.object isEqualToString:@"0"]) {
_myInterfaceOrientation = UIInterfaceOrientationMaskLandscapeRight;
}else{
_myInterfaceOrientation = UIInterfaceOrientationMaskAll;
}
}
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{
return _myInterfaceOrientation;
}
最后-->(代码思路,如果有相同之处,不是故意为之)以下是demo地址:demo
网友评论