屏幕边界延伸可见区域

时间:2013-09-16 05:38:14

标签: ios uiview

我正在尝试在主视图的右下角制作一个方形(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];

3 个答案:

答案 0 :(得分:2)

尝试添加自动调整遮罩:

transparentFloater.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin;

答案 1 :(得分:1)

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

<强>原因

因此,在ViewDidLoad中,返回高度为 X 的.xib视图。但是你可能已经使用 UINavigationController 加载了viewController,加载后视图的高度减少了 44像素

建议

1)每当您知道自己最终会有导航栏时,请在 .xib 文件中提及。

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

2)调用以下api

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

  • viewDidLoad
  • viewDidAppear

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

答案 2 :(得分:0)

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

transparentFloater.backgroundColor = [UIColor redColor];

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