gpt4 book ai didi

ios - 在 iPad Mini iOS 7 中使用 UIImagePickerController

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:40:31 26 4
gpt4 key购买 nike

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

更新:我通过 subview 层次结构观察到“CAMFlipButton”有错误的框架:

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

It displayed like this

最佳答案

我遇到了同样的问题;它似乎只影响 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。

我的切换相机图像是这样的:
switch-camera
(很难看,它是白色的!右键单击或拖动它可以看到它...)

关于ios - 在 iPad Mini iOS 7 中使用 UIImagePickerController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20895993/

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