【问题标题】:iPhone CameraOverlay view 20px gapiPhone 相机叠加视图 20px 间隙
【发布时间】:2011-10-02 05:43:34
【问题描述】:

我有一个应用程序,它使用 iPhone 相机并在相机上放置一个叠加层。但是一切正常,我已经设法将 UIView 旋转到横向,但它们在视图顶部有 20px 的间隙,尽管我已将定位设置为 (0,0,480,320)。

starContainerView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 480.0, 320.0)]     autorelease]; 
 UIImageView *overlayViewNew = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,480.0,320.0)];
 UIImage *OverlayImage = [[UIImage imageNamed:@"overlay.png"] autorelease];
 overlayViewNew.image = OverlayImage;
 [starContainerView addSubview:overlayViewNew];

正如您在上面看到的,我设置了 UIView 并设置了 UIIMageView 并将 UIImage 分配给该 UIImageview,然后将其添加到视图的子视图中。

这是我用来旋转视图的代码。

- (void) accelerometer:(UIAccelerometer *)accelerometer
   didAccelerate:(UIAcceleration *)acceleration {
     if (fabsf(acceleration.x) > -1.0) {
       CGAffineTransform landscapeTransform =     CGAffineTransformMakeRotation(degreesToRadian(90));
       landscapeTransform = CGAffineTransformTranslate (landscapeTransform, +80.0, +100.0);
       [self.starContainerView setTransform:landscapeTransform];
     }
   }

我似乎无法用它来填补这个空白!我也可以说在开发这个时没有涉及火箭科学,但我仍然找不到答案。

【问题讨论】:

    标签: iphone objective-c uiimageview


    【解决方案1】:

    20px 的间隙可能与未正确隐藏状态栏有关。确保你的 info.plist 中有这个:

    <key>UIStatusBarHidden</key> 
    <true />
    

    【讨论】:

    • 是的,我已经在 plist 文件中启用了此功能。但是,它看起来确实可能与状态栏有关,因为它是那个大小。
    【解决方案2】:

    如果归结为以下代码。我玩弄了下面的数字,这很有效。

    CGAffineTransform landscapeTransform =     CGAffineTransformMakeRotation(degreesToRadian(90)); 
      landscapeTransform = CGAffineTransformTranslate (landscapeTransform, +80.0, +80.0);
    

    【讨论】:

      猜你喜欢
      • 2015-04-10
      • 2013-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多