自iOS 7起,Apple鼓励开发人员在导航栏和其他半透明元素后面显示内容
让我们说我在导航视图中嵌入了一个视图控制器,向该视图控制器添加了一个地图视图,并将地图视图的边缘扩展到了屏幕的边界(所以即使后面导航栏)给出了预期的效果:导航栏模糊了地图视图的内容
但是iOS也做了其他的事情:虽然地图本身是在后面导航栏,但是如果用户必须看到或触摸的ui元素(例如指南针)实际上已经被删除,那么它就不会出现#39 ; t由导航栏隐藏;一张图片胜过千言万语:
我想知道的是,我应该使用地图视图的哪些属性来使其按程序设计行为? (因为如果我在地图顶部手动添加半透明视图,指南针将被隐藏,所以我希望能够这样做)?这个问题也适用于其他类型的观点,例如表格视图,它的原理是否相同?
谢谢。
答案 0 :(得分:1)
对于UIScrollView
及其子类(UICollectionView
,UITableView
),将contentInset
设置为类似UIEdgeInsetsMake(64.0 /* TOP */, 0.0 /* LEFT */, 44.0 /* BOTTOM */, 0.0 /* RIGHT */);
之类的内容将是最佳选择
您可以检查UIViewController
的属性topLayoutGuide
和bottomLayoutGuide
,以确定您需要插入的内容。
对于MKMapView
,我尝试以编程方式添加它,看起来它会自动调整指南针的框架和“Legal”标签。我会说,在布局按钮和标签时需要考虑topLayoutGuide
和bottomLayoutGuide
。