2012-01-18 7 views
3

Changing View size using user touch inputサイズ変更可能なView..usingユーザタッチ

これは私の質問..うまくソートの...今それがあるold..and彼は私を助けたので、男の答えを受け入れることも、私の義務のようなものだったですこれは、だから、短い合計する継続中enter image description here

ある

くらい:私は私のapp..iでサイズ変更可能なビューカメラを持っていると思います)

1はそれを..downloaded https://github.com/spoletto/SPUserResizableViewこのgitのに行ってきました。..それを実装しました。私のデリゲートメソッドで

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)今私のavcapturePreviewは一種の...それはそれ一度ビューの上端に触れていない野生起こっている

- (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)編集を開始します。右下隅にスティックがありますが、完全には表示されません。

デリゲートのスローグは、プレビューとユーザーがサイズ変更可能な両方の値の等しい値を記録します。

助けてくださいか?

+0

おそらく、AVCaptureVideoPreviewLayerにバグがあり、画面上でそのフレームを変更することはできません。たぶんあなたはサイズ変更を試みることができます、あなたは1)静止画像を撮るべき2)ユーザーが画像のサイズを変更できるようにする3)プレビューレイヤーを削除し、新しいフレームで再び追加する – bobbypage

答えて

1

単純に追加します。

[captureVideoPreviewLayer setNeedsLayout]; 
[captureVideoPreviewLayer setNeedsDisplay]; 

をあなたのデリゲートメソッドの最後に境界が変更されていると、レイヤーの内容は、更新が必要であることのUIKitに合図します。

関連する問題