如何在目标c中使用超视图大小将子视图初始化为superview?

时间:2014-09-29 13:40:19

标签: ios objective-c uiview

我尝试使用原始superview初始化子视图页面。

这应该是视图页面上的视图页面。

此方法从viewDidLoad调用。

-(void)CreateDarkerView
{
  UIView *darker = [[UIView alloc]initWithFrame:self.verificationView.frame];
  darker.backgroundColor = [UIColor blackColor];
  darker.alpha = 0.7;
  [verificationView insertSubview:darker aboveSubview:blurBackground];


  NSLog(@"darker height = %f ",(darker.frame.size.height));
  NSLog(@"darker width = %f  \n",(darker.frame.size.width));

  NSLog(@"VerificationView height = %f ",(self.verificationView.frame.size.height));
  NSLog(@"VerificationView width = %f \n\n ",(self.verificationView.frame.size.width));



}

无论我运行哪个模拟器(4s,5,5s,6,6 +),这个帧大小保持不变。

这是来自控制台行的打印输出。

2014-09-29 15:33:32.652 roee[33353:5476056] darker height = 568.000000 
2014-09-29 15:33:32.653 roee[33353:5476056] darker width = 320.000000  

2014-09-29 15:33:32.653 roee[33353:5476056] VerificationView height = 568.000000 
2014-09-29 15:33:32.653 roee[33353:5476056] VerificationView width = 320.000000 

例如,当模拟器打开时,我可以看到屏幕尺寸不同。 验证视图中较暗的视图很小。

我在Xcode V6.0.1中使用自动布局到VerificationView。

2 个答案:

答案 0 :(得分:1)

您应该使用-initWithFrame:来呼叫self.verificationView.bounds

答案 1 :(得分:1)

您不能保证viewDidLoad上有适当的几何图形。请使用viewDidLayoutSubviews代替-(void)createDarkerView