01-04

1. 某些兼容iOS6的项目要求UI也完全一致,包括状态栏的黑条白字(无力吐槽了)。在iOS7以上其实不需要在状态栏之下加黑色view,更优雅的方法是使用一倍高度为44的导航条图片,并且用如下代码

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav.png"]
                                             forBarPosition:UIBarPositionTopAttached
                                                 barMetrics:UIBarMetricsDefault];

关于UIBarPosition和导航条图片高度组合的效果,有官方文档说明

2015.01 零碎知识点

2.  iOS7以后,如果ViewController带有NavigationBar或者TabBar,且允许view延伸到Bar之下,此时加到self.view上的scrollView可能会表现的类似设置过偏移量,如图,视图上仅添加一个背景色为红色的scrollView

2015.01 零碎知识点图片往下偏移大概一个导航条的高度。(实际这个属性是默认为全屏TableView准备的)

需要设置self.automaticallyAdjustsScrollViewInsets = NO;才能显示正常。

01-11

3. 为了保证和view hierarchy对应,添加和移除子viewController的正确姿势应该如下:

1 //添加子VC
2 
3 AViewController *vc = [[AViewController alloc] init];
4 [self addChildViewController:vc];
5 // [vc willMoveToParentViewController:self] 无需手动调用
6 [self.view addSubview:vc.view];
7 [vc didMoveToParentViewController:self];
1 //移除子VC
2 
3 [vc willMoveToParentViewController:nil];
4 [vc.view removeFromSuperview];
5 [vc removeFromParentViewController];
6 // [vc didMoveToParentViewController:nil] 无需手动调用

 01-19

4. UIScrollView有一个BOOL型属性scrollsToTop(默认是YES),使得当它是viewController上唯一可见的滚动视图时,用户点击状态栏可以将其滚动到顶端,如果硬要禁用的话置为NO就行了(给把这种iOS特性当Bug提的测试们跪了)

相关文章:

  • 2021-09-05
  • 2021-11-13
  • 2021-05-28
  • 2021-07-23
  • 2021-09-06
  • 2021-07-03
  • 2021-07-14
  • 2022-12-23
猜你喜欢
  • 2022-01-22
  • 2021-12-15
  • 2021-08-04
  • 2021-09-07
  • 2021-11-13
  • 2021-03-31
  • 2021-11-25
相关资源
相似解决方案