【问题标题】:Using UIImagePickerController in iPad Mini iOS 7在 iPad Mini iOS 7 中使用 UIImagePickerController
【发布时间】:2014-01-20 16:06:12
【问题描述】:

我有一个针对 iPhone 的应用。 UIImagePickerController 在 iPhone 上运行良好,但是当我在 iOS 7 上使用 iPad Mini 打开它时,UIImagePickerController 的顶部被隐藏了,它隐藏了前置/后置摄像头切换按钮。我该如何解决这个问题?

更新: 我通过子视图层次结构观察到“CAMFlipButton”的帧错误:

<CAMFlipButton: 0x176e6250; baseClass = UIButton; frame = (310.5 9.5; 48 70); opaque = NO; layer = <CALayer: 0x176e63c0>>

【问题讨论】:

  • 你在其他 iPad 上试过吗?
  • 在 iPad 上没有问题。只有 iPad Mini 有这个问题。
  • iOS8 也一样。你找到解决办法了吗?

标签: ios ios7 uiimagepickercontroller ipad-mini


【解决方案1】:

我有同样的问题;它似乎只影响 iOS 7 和 8 上的 iPad Mini(但只影响非视网膜版本)。不知道为什么没有多少人遇到这个问题,但我找不到有效的解决方案或解决方法。
所以我所做的(我被黑了!)是我检测到这种情况何时发生(当按钮最终超出窗口边界时),并通过将按钮移回窗口并将我自己的图像添加到按钮来纠正它。

@interface MyImagePickerController : UIImagePickerController
@end

@implementation MyImagePickerController

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    showFlipButtonInSubviews(self.view);
}

void showFlipButtonInSubviews(UIView *view) {
    if ([[[view class] description] isEqualToString:@"CAMFlipButton"]) {
        if (view.x + view.width > UIScreen.mainScreen.bounds.size.width + 5) {
            // Fixes this: http://stackoverflow.com/questions/20895993/using-uiimagepickercontroller-in-ipad-mini-ios-7
            // Happens on iPad Mini non-retina only
            view.x = UIScreen.mainScreen.bounds.size.width - view.width - 10;
            UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 23, 16)];
            imageView.image = [UIImage imageNamed:@"switch-camera"];
            [view addSubview:imageView];
        }
    } else {
        for (UIView *subview in [view subviews]) {
            showFlipButtonInSubviews(subview);
        }
    }
}

@end

你为什么问UIScreen.mainScreen.bounds.size.width + 5?只是因为在 iPad Mini 视网膜上,该按钮在窗口外有 4 个像素,但它仍然正确显示,所以我不想应用这个 hack。

我的切换摄像头图像如下所示:

(很难看到,它是白色的!右键单击或拖动它可以看到它...)

【讨论】:

    猜你喜欢
    • 2013-09-27
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 2014-03-02
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多