iOS 屏幕原点坐标
Posted 长沙火山
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 屏幕原点坐标相关的知识,希望对你有一定的参考价值。
一、屏幕原点坐标的研究
我们给一个空间设置origin为(0,0)的时候,有时候这个点会再屏幕的最左上角(有导航栏的情况下还可能会被导航栏给盖住),有时候又在导航栏的下边,都是同样的原点坐标,那么为什么会出现这种情况呢?下面给出答案:
一个controller的view的原点位置受self.navigationController. navigationBar 的 setTranslucent (BOOL) 属性控制,在 ios7 以后 translucent 属性默认为 YES。
translucent 为YES:原点位置坐标为屏幕左顶端,即屏幕坐标系(0 , 0),含义为毛玻璃、半透明效果。
translucent 为NO:原点位置坐标为导航栏的下边的左顶端,即屏幕坐标系(0 , 64),此时导航栏不透明。
注意,当我们设置navigationBar的背景图片setBackgroundImage(注意是背景图片不是背景颜色)的时候,坐标起点也会变成(0,64),因为当我们设置背景图片的时候,系统会自动修改translucent为NO。
二、设置屏幕原点坐标从(0, 0)开始
- (void)viewWillAppear:(BOOL)animated
[super viewWillAppear:animated];
//translucent 为YES:原点位置坐标为屏幕左顶端,即屏幕坐标系(0 , 0),含义为毛玻璃、半透明效果。
self.navigationController.navigationBar.translucent = YES;
- (void)viewWillDisappear:(BOOL)animated
[super viewWillDisappear:animated];
//translucent 为NO:原点位置坐标为导航栏的下边的左顶端,即屏幕坐标系(0 , 64),此时导航栏不透明。
self.navigationController.navigationBar.translucent = NO;
以上是关于iOS 屏幕原点坐标的主要内容,如果未能解决你的问题,请参考以下文章