4

次のコードは、UIImagePickerControllercameraOverlayView を使用してフォト ライブラリを開くカスタム ボタンを表示する を持つ popover コントローラーを作成します。

これは iOS 5 では問題なく機能しますが、iOS 6 では「写真を撮る」ボタンがありません。代わりに、前面と背面のカメラ ボタンの間に別のスイッチがあります。

次のスクリーンショットを参照してください -

写真を撮るボタンがない

これはコードです - UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;

if ( ![UIImagePickerController isSourceTypeAvailable: sourceType] ) {
    [self openLibrary: sender];
    return;
}

UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = sourceType;

UIButton *libraryButton = [UIButton buttonWithType: UIButtonTypeCustom];
libraryButton.frame = CGRectMake(12, 12, self.photoLibraryIcon.size.width, self.photoLibraryIcon.size.height);
[libraryButton setImage: self.photoLibraryIcon forState: UIControlStateNormal];
[libraryButton addTarget: self action: @selector(openLibrary:) forControlEvents: UIControlEventTouchUpInside];

[picker.cameraOverlayView addSubview:libraryButton];

__imagePickerPopoverController = [[UIPopoverController alloc] initWithContentViewController: picker];
self.imagePickerPopoverController.delegate = self;

[self.imagePickerPopoverController presentPopoverFromRect: CGRectMake(self.center.x - 5, self.center.y - 5, 10, 10)
                                                   inView: self.superview
                                 permittedArrowDirections: UIPopoverArrowDirectionAny
                                                 animated: YES];

を削除すると正常に[picker.cameraOverlayView addSubview:libraryButton]動作しますが、カスタム ボタンが表示されなくなります (予想どおり)。

では、なぜ a を割り当てるcameraOverlayViewと下部のツールバーが変わるのでしょうか?

「写真を撮る」ボタンを iOS 6 に戻す方法の手がかりはありますか?

4

0 に答える 0