2012-01-18 27 views
3

Changing View size using user touch input可調整View..using用戶觸摸

這是我的問題..好樣的..現在是old..and它也是一種我有責任接受傢伙的答案,因爲他幫了我這麼多

這是在延續enter image description here

所以總結簡短:

1)我想有可調整大小視攝像頭在我的app..i去這個混帳https://github.com/spoletto/SPUserResizableView ..downloaded吧..實施它。

在我的委託方法2)

AVCaptureVideoPreviewLayer *newCaptureVideoPreviewLayer = 
    [[AVCaptureVideoPreviewLayer alloc] initWithSession: 
    [[self captureManager] session]]; 
UIView *view = [self videoPreviewView]; 
CALayer *viewLayer = [view layer]; 
[viewLayer setMasksToBounds:YES]; 

CGRect frame = CGRectMake(50, 50, 200, 150); 
userResizableView = [[SPUserResizableView alloc] initWithFrame:frame]; 
// CALayer *viewLayer = [userResizableView layer]; 
userResizableView.delegate =self; 
[view setBackgroundColor:[UIColor clearColor]]; 
userResizableView.contentView =view; 
[self.view addSubview:userResizableView]; 
// [contentView release]; 
[userResizableView release]; 
CGRect bounds = [view bounds]; 

[newCaptureVideoPreviewLayer setFrame:bounds]; 

3)

- (void)userResizableViewDidEndEditing:(SPUserResizableView *)userResizableView 
{ 
    CGRect ResizableViewFrame = self.userResizableView.frame; 
    NSLog(@" %f--- %f--- %f--- %f ---",userResizableView.frame.origin.x,userResizableView.frame.origin.y,userResizableView.frame.size.width,userResizableView.frame.size.height); 
    captureVideoPreviewLayer.frame = ResizableViewFrame; 
    NSLog(@" %f--- %f--- %f--- %f ---",captureVideoPreviewLayer.frame.origin.x,captureVideoPreviewLayer.frame.origin.y,captureVideoPreviewLayer.frame.size.width,captureVideoPreviewLayer.frame.size.height); 
} 

4)現在我avcapturePreview是那種會野..它不觸及一旦視圖的頂部邊緣開始編輯..對右下角的棒,但從來沒有完全填充視圖。

委託中的日誌記錄對於預覽和用戶可調整大小的vie記錄相同的值。

有幫助嗎?

+0

也許,AVCaptureVideoPreviewLayer存在一個錯誤,您無法在屏幕上更改該幀。也許你可以嘗試調整大小,你應該1)拍攝靜止圖像2)讓用戶調整圖像大小3)刪除預覽圖層並將其添加到新幀中 – bobbypage 2012-03-02 23:13:11

回答

1

只需添加:

[captureVideoPreviewLayer setNeedsLayout]; 
[captureVideoPreviewLayer setNeedsDisplay]; 

你的委託方法的結束信號到的UIKit的界限已經改變,該層的內容需要更新。