Open ChrisRockC opened 6 years ago
self.edgesForExtendedLayout = UIRectEdgeNone; edgesForExtendedLayout是一个类型为UIExtendedEdge的属性,指定边缘要延伸的方向。 因为iOS7鼓励全屏布局,它的默认值很自然地是UIRectEdgeAll,四周边缘均延伸,就是说,如果即使视图中上有navigationBar,下有tabBar,那么视图仍会延伸覆盖到四周的区域。 设置了UIRectEdgeNone之后,你嵌在UIViewController里面的UITableView和UIScrollView就不会穿过UINavigationBar了,同时UIView的控件也回复到了iOS6时代。
将原点移动到navigationBar下面
UITableViewWrapperView是iOS7.0之后才添加的一个对象, 在这之前cell的父视图就是UITableView, 但是添加了UITableViewWrapperView之后就不用关心tableView的frame了, UITableViewWrapperView会根据情况进行判断, 那么是什么情况呢, 细心的同学可能已经发现, 正常的与上移64的相比中间似乎多了个绿色的东东. 对没错, 就是他,
问题就出在这里, 当你的view上面添加了一个控件的时候, 再添加tableView时(也就是说tableView不是viewContrller上的第一个视图时), UITableViewWrapperView就会做出判断, 不会下移64