我正在尝试在主视图的右下角制作一个方形(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];
答案 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));
在
viewDidAppear
跟踪视图范围内发生的事情
答案 2 :(得分:0)
你不需要做任何事情只需要
transparentFloater.backgroundColor = [UIColor redColor];
因为您的视图(自定义)不可见(因为您的主视图颜色和自定义视图颜色相同 (白色) )可能是。我在我的演示项目中尝试了你的代码。它对我来说很完美。