iPhone相机叠加视图20px差距

时间:2010-02-23 20:12:03

标签: iphone objective-c uiimageview

我有一个使用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并为该UIImageview分配了一个UIImage,然后将其添加到视图的子视图中。

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

- (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];
     }
   }

我似乎无法让它填补这个空白!我是否也可以说在开发过程中没有涉及火箭科学,但我仍然无法找到答案。

2 个答案:

答案 0 :(得分:0)

20px的差距可能与状态栏没有被正确隐藏有关。确保在info.plist中有这个:

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

答案 1 :(得分:0)

如果是以下代码。我玩了下面的数字,这很有效。

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