ios半透明导航栏导致视图错位

时间:2017-02-14 06:29:55

标签: ios objective-c uiview

我的项目有一个主视图M嵌入在导航控制器中,在storyboard / swift 3中实现.M将推送到一个不同的视图C,它完全在object-C代码中实现,并在代码中完成所有布局。选中M导航控制器的半透明属性时,C看起来正确。但是,如果取消选中Translucent属性,则C的整个视图将完全降低导航栏的高位。

在下面的屏幕截图中。左边是半透明的,圆形按钮完全可见。右边没有半透明,按钮降低并部分覆盖。 (由于半透明的设置差异,颜色看起来略有不同。)

enter image description here enter image description here enter image description here

呈现视图的代码看起来并不显着。我浏览了调试器中的代码,在两种半透明模式下使用的屏幕尺寸和框架坐标完全相同。

// obj-c codes for C
@interface ViewControllerC : UIViewController{
// ...
}
@end

CGFloat w,h;
CGRect rect = [[UIScreen mainScreen] bounds];
w = rect.size.width;
h = rect.size.height;
btnToolbar = [[UIView alloc]initWithFrame:CGRectMake((w-TOOLBARW)/2,h-80,TOOLBARW,80)];
btnToolbar.autoresizesSubviews=YES;
// buttons added into the btnToolbar

// ------------------------------------------
// Swift 3 code that instantiate and push C
if let vc = ViewControllerC()  {
    self.navigationController?.pushViewController(vc, animated: true)
}

会发生什么?以及如何解决?

0 个答案:

没有答案