我有一个使用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];
}
}
我似乎无法让它填补这个空白!我是否也可以说在开发过程中没有涉及火箭科学,但我仍然无法找到答案。
答案 0 :(得分:0)
20px的差距可能与状态栏没有被正确隐藏有关。确保在info.plist中有这个:
<key>UIStatusBarHidden</key>
<true />
答案 1 :(得分:0)
如果是以下代码。我玩了下面的数字,这很有效。
CGAffineTransform landscapeTransform = CGAffineTransformMakeRotation(degreesToRadian(90));
landscapeTransform = CGAffineTransformTranslate (landscapeTransform, +80.0, +80.0);