0

我正在尝试在主视图的右下角制作一个方形 (50 x 50) UIView,但我对为什么它不完全可见感到困惑。在这种情况下,从底部只能看到它的尖端。我混淆了一些概念吗?

    CGFloat width = CGRectGetWidth(self.view.bounds);
    CGFloat height = CGRectGetHeight(self.view.bounds);
    UIView *transparentFloater = [[UIView alloc] initWithFrame:CGRectMake(width - 50.f, height - 50.0f, 50.0f, 50.0f)];

    [self.view addSubview:transparentFloater];
4

3 回答 3

2

尝试添加自动调整掩码:

transparentFloater.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin;
于 2013-09-16T05:47:26.077 回答
1

如果我没记错的话,您已经使用 xib 创建了 ViewController,并且在视图的属性中,您忘记提及您正在使用“导航栏”作为“顶部栏”。

原因

所以在 ViewDidLoad 中,返回 .xib 中高度为X的视图。但正如您可能使用UINavigationController加载了 viewController 一样,加载后视图的高度减少了44pixels

建议

1) 每当您知道您将在顶部有导航栏时,请在.xib文件中提及它。

为此,请单击 xib 中的视图,然后在实用程序区域属性检查器中选择名为topbar的选项

2)调用以下api

    NSLog(@"In ViewDidAppear %@",NSStringFromCGRect(self.view.bounds));

  • viewDidLoad
  • viewDidAppear

    跟踪视野范围内发生的事情

于 2013-09-16T07:06:47.780 回答
0

你不需要做任何事情只是把

transparentFloater.backgroundColor = [UIColor redColor];

因为您的视图(自定义)是不可见的(因为您的主视图颜色和自定义视图颜色相同(白色))可能是。我在我的演示项目中尝试了你的代码。它对我来说非常有效。

于 2013-09-16T05:49:03.823 回答