2

这是期望的结果。蓝色区域是感兴趣的 UIView。UIView 不是 UIImageView。

在此处输入图像描述

我尝试了各种带有自动调整大小的蒙版的安排,但无济于事

4

3 回答 3

1

处理不同的屏幕尺寸可能很棘手。在你的情况下它不是:) 因为你想在屏幕上居中视图的大小,你需要做的就是将视图的中心设置为屏幕的中心。

CGRect screenBounds = [[UIScreen mainScreen] bounds];
view.center = CGPointMake(screenBounds.size.width/2,screenBounds.size.height/2);

此代码假定视图的 superView 的边界与 screenBounds 的大小相同。

于 2013-03-28T11:16:31.060 回答
1

这只能以编程方式完成。一种选择是@user2223761 建议的子类化。如果您不想继承 UIView,那么您需要在方向更改时设置框架并将 yourView.center 设置为中心的中心。

- (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration {

   if (UIInterfaceOrientationIsLandscape(interfaceOrientation)) {
          // Make sure that the frame is centered in the screen
          NSInteger paddingLeftSide = (self.view.bounds.size.width - 480) / 2;
          self.view.frame = CGRectMake(paddingLeftSide, 0, 480, 320);   
      } else {
          self.view.frame = CGRectMake(0, 0, 320, 320);
      }
  }
于 2013-04-05T23:21:01.240 回答
0

第一:子类 UIView(创建一个 MYUIView)。二:覆盖方法

- (void)layoutSubviews {
   [super layoutSubviews];
   // .. put your code...
}

并通过读取屏幕尺寸在该方法内手动执行帧更新。自动调整大小掩码必须设置为 UIViewAutoresizingNone。

于 2013-03-29T08:53:26.750 回答