編集3
良いニュースと悪いニュース。良いニュースは、接続インスペクターでオーバーレイUIToolbarを切断してUIImageviewを接続すると表示されますtheKing
が、悪いニュースですが、UIToolbarも表示されません。これも必要です。それで、今の問題は、ユーザーがここで終了したときに、どのようにして呼び出し元のVCに戻ることができるかということです。ツールバーと画像の両方をオーバーレイの一部にする方法、または「戻るボタン」ツールバーを非オーバーレイビューなどに配置する方法を教えてください。または、ツールバーと画像の両方をOverlayViewControllerに表示するにはどうすればよいですか?
編集3
編集2
setupImagePicker
でOverlayViewController.m
。
- (void)setupImagePicker:(UIImagePickerControllerSourceType)sourceType
{
self.imagePickerController.sourceType = sourceType;
if (sourceType == UIImagePickerControllerSourceTypeCamera)
{
// user wants to use the camera interface
//
self.imagePickerController.showsCameraControls = NO;
if ([[self.imagePickerController.cameraOverlayView subviews] count] == 0)
{
// setup our custom overlay view for the camera
//
// ensure that our custom view's frame fits within the parent frame
CGRect overlayViewFrame = self.imagePickerController.cameraOverlayView.frame;
CGRect newFrame = CGRectMake(0.0,
CGRectGetHeight(overlayViewFrame) -
self.view.frame.size.height - 10.0,
CGRectGetWidth(overlayViewFrame),
self.view.frame.size.height + 10.0);
self.view.frame = newFrame;
[self.imagePickerController.cameraOverlayView addSubview:self.view];
}
}
}
編集2
編集1
編集1
編集0
iPadではなくiPhoneでこれを試した人はいますか?私はiPhoneを持っていませんが、今日マット・ノイブルクの本を読んでいて、UIImagePickerは2つのデバイスで動作が異なると言っています。
編集0
UIImagePickerでカメラビュー全体にオーバーレイしようとしている画像が表示されません。プロパティとしてIBOutletを追加する方法に関係なく、画像は表示されませんが、オーバーレイされたツールバーは正常に表示されます。なんで?
IBOutletをtheKing
含むOverlayViewController.hがAppleのサンプルコードに追加され、今のところコメントアウトされています。
#import <UIKit/UIKit.h>
#import <AudioToolbox/AudioServices.h>
@protocol OverlayViewControllerDelegate;
@interface OverlayViewController : UIViewController <UINavigationControllerDelegate, UIImagePickerControllerDelegate>
{
// IBOutlet UIImageView* theKing; ******** temporarily commented out
id <OverlayViewControllerDelegate> delegate;
}
@property (nonatomic, assign) id <OverlayViewControllerDelegate> delegate;
@property (nonatomic, retain) UIImagePickerController *imagePickerController;
- (void)setupImagePicker:(UIImagePickerControllerSourceType)sourceType;
@end
@protocol OverlayViewControllerDelegate
- (void)didTakePicture:(UIImage *)picture;
- (void)didFinishWithCamera;
@end
Appleのサンプルコードproperty
にforIBOutletが追加されたOverlayViewController.m。theKing
#import "OverlayViewController.h"
enum
{
kOneShot, // user wants to take a delayed single shot
kRepeatingShot // user wants to take repeating shots
};
@interface OverlayViewController ( )
@property (assign) SystemSoundID tickSound;
@property (nonatomic, retain) IBOutlet UIImageView* theKing; // added *********
@property (nonatomic, retain) IBOutlet UIBarButtonItem *takePictureButton;
@property (nonatomic, retain) IBOutlet UIBarButtonItem *startStopButton;
@property (nonatomic, retain) IBOutlet UIBarButtonItem *timedButton;
@property (nonatomic, retain) IBOutlet UIBarButtonItem *cancelButton;
@property (nonatomic, retain) NSTimer *tickTimer;
@property (nonatomic, retain) NSTimer *cameraTimer;
theKing
iPhoneでコードを実行すると画像が表示されません。以下は、私が追加したペン先のビューで、接続の一部を示しています。エラーはスローされませんが、画像が表示されず、UIToolbarのみがすでに追加されています。