美文网首页
常用控制器

常用控制器

作者: FunkyRay | 来源:发表于2017-12-03 11:55 被阅读9次

关于UIViewController

1.两个UIViewController之间跳转时的生命周期:

  • 调用第一个控制器的viewWillDisappear方法
  • 调用第二个控制器的viewWillAppear方法
  • 调用第二个控制器的viewDidAppear方法
  • 调用第一个控制器的viewDidDisappear方法

2.UIViewController创建时的生命周期:

  • loadView:当第一次使用控制器的view时,会调用loadView方法创建view,
    一般在这里自定义view
  • viewDidLoad:当控制器的view创建完毕时会调用,也就是在loadView后调用,
    一般在这里添加子控件、初始化数据
  • viewDidUnload:当控制器的view因为内存警告被销毁时调用,
    一般在这里回收跟界面相关的资源(界面都会销毁了,跟界面相关的资源肯定不要了)

关于UINavigationController

1.统一设置导航栏按钮:

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated {

    // 在该方法里做你想要做的事情
    [super pushViewController:viewController animated:animated];    
}

2.推出控制器并隐藏tabBar:

 viewController.hidesBottomBarWhenPushed = YES;

3.左滑返回无效的方法:

分析:
1.手势被清空   
2.可能手势代理做了一些事情,导致手势失效)
设置该属性interactivePopGestureRecognizer的delegate

4.设置导航条背景图片的方法:

[navBar setBackgroundImage:[UIImage imageNamed:@"navigationbarBackgroundWhite"] forBarMetrics:UIBarMetricsDefault];

5.不要给UIScrollView子控件增加内边距的方法:

 self.automaticallyAdjustsScrollViewInsets = NO;

// iOS 11后更改的新方法:
self.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;

关于UITabBarController

1.TabBar中的图片被渲染的解决办法

  • 直接更改图片的Rander As属性,设置为Original Image
    如果加载图片过多,一一设置太过麻烦,可以点击其中一个,按Command + A,即全部选中,在更改该属性即可。
  • 通过代码进行更改:
UIImageRenderingModeAutomatic  // 根据图片的使用环境和所处的绘图上下文自动调整渲染模式。  
UIImageRenderingModeAlwaysOriginal  // 始终绘制图片原始状态,不使用Tint Color。
UIImageRenderingModeAlwaysTemplate  // 始终根据Tint Color绘制图片,忽略图片的颜色信息。

UIImage.renderingMode = UIImageRenderingModeAlwaysOriginal;

2.设置按钮颜色属性:

UITabBarItem *item = [UITabBarItem appearanceWhenContainedIn:self, nil];
NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
attrs[NSForegroundColorAttributeName] = [UIColor blackColor];
[item setTitleTextAttributes:attrs forState:UIControlStateSelected];

注意:设置字体尺寸只有设置正常状态下才会有效果

3.设置全局TabBar方法注意点:

  • 只有遵守了UIAppearence协议的类才可以使用该方法
  • 会使整个工程所有的tabBar改变,一般使用appearanceWhenContainedIn:方法。
  • 哪些属性可以通过appearance设置:只有被UI_APPEARANCE_SELECTOR宏修饰的属性才能设置
  • 只能在控件显示之前设置才有作用
  • 一般用于大规模的设置。ex:夜间模式

4.调用系统私有类和属性的方法:

  • 使用NSClassFromString:方法去反编译得到该类型。
  • 可以使用setValue:forKey:(kvc)去底层找到该属性并更改
  • 利用Runtime去更改

相关文章

网友评论

      本文标题:常用控制器

      本文链接:https://www.haomeiwen.com/subject/ctsabxtx.html