如何以编程方式重现此 "offset behavior"?
How to reproduce this "offset behavior" programmatically?
自 iOS7 起,Apple 鼓励开发人员在导航栏和其他半透明元素后面显示内容。
假设我在导航视图中嵌入了一个视图控制器,向该视图控制器添加了一个地图视图并将地图视图的边缘扩展到屏幕的边界(所以即使 behind导航栏)给出了预期的效果:导航栏模糊了地图视图的内容。
但是 iOS 还做了其他事情:尽管地图本身呈现在 导航栏后面 ,如果 ui 元素用户必须看到或触摸(例如指南针)实际上是偏移的,因此它不会被导航栏隐藏;一图胜千言:
我想知道的是 属性 我应该使用什么地图视图来使其以编程方式表现得像这样? (因为如果我在地图顶部手动添加半透明视图,指南针将被隐藏,所以我希望能够做到这一点)?这个问题也适用于其他种类的视图,比如table视图,是不是同一个原理?
谢谢。
对于 UIScrollView
及其子类(UICollectionView
、UITableView
),将 contentInset
设置为类似 UIEdgeInsetsMake(64.0 /* TOP */, 0.0 /* LEFT */, 44.0 /* BOTTOM */, 0.0 /* RIGHT */);
的方式去。
您可以检查 UIViewController
的属性 topLayoutGuide
和 bottomLayoutGuide
以确定您必须插入多少。
对于 MKMapView
,我尝试以编程方式添加它,它似乎自动调整了指南针的框架和 "Legal" 标签。我会说它需要考虑 topLayoutGuide
和 bottomLayoutGuide
来布局按钮和标签。
自 iOS7 起,Apple 鼓励开发人员在导航栏和其他半透明元素后面显示内容。
假设我在导航视图中嵌入了一个视图控制器,向该视图控制器添加了一个地图视图并将地图视图的边缘扩展到屏幕的边界(所以即使 behind导航栏)给出了预期的效果:导航栏模糊了地图视图的内容。
但是 iOS 还做了其他事情:尽管地图本身呈现在 导航栏后面 ,如果 ui 元素用户必须看到或触摸(例如指南针)实际上是偏移的,因此它不会被导航栏隐藏;一图胜千言:
我想知道的是 属性 我应该使用什么地图视图来使其以编程方式表现得像这样? (因为如果我在地图顶部手动添加半透明视图,指南针将被隐藏,所以我希望能够做到这一点)?这个问题也适用于其他种类的视图,比如table视图,是不是同一个原理?
谢谢。
对于 UIScrollView
及其子类(UICollectionView
、UITableView
),将 contentInset
设置为类似 UIEdgeInsetsMake(64.0 /* TOP */, 0.0 /* LEFT */, 44.0 /* BOTTOM */, 0.0 /* RIGHT */);
的方式去。
您可以检查 UIViewController
的属性 topLayoutGuide
和 bottomLayoutGuide
以确定您必须插入多少。
对于 MKMapView
,我尝试以编程方式添加它,它似乎自动调整了指南针的框架和 "Legal" 标签。我会说它需要考虑 topLayoutGuide
和 bottomLayoutGuide
来布局按钮和标签。