【问题标题】:Resizable View using user touch使用用户触摸可调整大小的视图
【发布时间】:2012-02-13 05:18:49
【问题描述】:

这是继续from this question

总而言之:

1) 我想在我的应用程序中安装可调整大小的摄像头。我去this repo,下载并实现了。

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 有点疯狂了;一旦开始编辑,它就不会触及视图的顶部边缘。它有点粘在右下角,但永远不会完全填满视图。

委托中的 slog 记录预览和用户可调整大小视图的相同值。

【问题讨论】:

  • 也许,AVCaptureVideoPreviewLayer 有一个错误,您无法在屏幕上更改帧。也许您可以尝试调整大小,您应该 1)拍摄静止图像 2)让用户调整图像大小 3)删除预览层并使用新框架再次添加它

标签: iphone objective-c ios xcode view


【解决方案1】:

只需添加:

[captureVideoPreviewLayer setNeedsLayout];
[captureVideoPreviewLayer setNeedsDisplay];

到您的委托方法的末尾,向 UIKit 发出边界已更改且图层内容需要更新的信号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 2012-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多