我試圖複製所有的蘋果公司提供該示例應用程序的功能叫做AVCam:https://developer.apple.com/library/ios/samplecode/AVCam/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010112-Intro-DontLinkElementID_2需要改變的CALayer類的大小和位置的對象
我有被改變的大小麻煩的唯一的事情, UIView對象的位置。問題是我正在使用蘋果的示例代碼,這對我來說沒有意義。
Apple提供了這個示例VC,我稱之爲MediaCapturePreviewView。這裏是頭文件代碼:
#import <UIKit/UIKit.h>
@class AVCaptureSession;
@interface MediaCapturePreviewView : UIView
@property (nonatomic) AVCaptureSession *session;
@end
這裏是它的主要文件代碼:
#import "MediaCapturePreviewView.h"
#import <AVFoundation/AVFoundation.h>
@implementation MediaCapturePreviewView
- (void)drawRect:(CGRect)rect
{
// Drawing code
}
*/
+ (Class)layerClass
{
return [AVCaptureVideoPreviewLayer class];
}
- (AVCaptureSession *)session
{
return [(AVCaptureVideoPreviewLayer *)[self layer] session];
}
- (void)setSession:(AVCaptureSession *)session
{
[(AVCaptureVideoPreviewLayer *)[self layer] setSession:session];
}
@end
然後在我的應用程序的中央視圖控制器,我已經進口的,我只是表現出了「MediaCapturePreviewView」的頭文件您。最後但並非最不重要的,在我中心視圖控制器的主要文件,我有一個IBOutlet中,看起來像這樣在接口方面:
@property (nonatomic, weak) IBOutlet MediaCapturePreviewView *previewView;
以上IBOutlet中已經連接在Interface Builder一個UIView對象覆蓋整個iPhone屏幕。
然後在這裏是previewView是如何使用的,當您點擊「拍照」按鈕,一個小例子:
- (IBAction)snapStillImage:(id)sender
{
dispatch_async([self sessionQueue], ^{
// Update the orientation on the still image output video connection before capturing.
[[[self stillImageOutput] connectionWithMediaType:AVMediaTypeVideo] setVideoOrientation:[[(AVCaptureVideoPreviewLayer *)[[self previewView] layer] connection] videoOrientation]];
我已經嘗試了上面的方法調用之後加入這個代碼,但它是沒有幫助:
_previewView.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.frame.size.height/2);
我知道,你可以編輯像框架,範圍和位置CALayer的類對象的屬性,但我只是卡住了,不知道哪兒我需要編輯這些東西。
這是當前的UIView的外觀拍攝照片時,如:
而這正是我需要它看起來像:
基本上,我需要它佔據iPhone屏幕的前50%。
任何幫助非常感謝你。
的可能重複的([在界面生成的UIView對象的大小使用的應用程序時改變] http://stackoverflow.com/questions/21848492/size -of-的UIView對象合界面助洗劑 - 變化 - 時 - 使用最應用) –