美文网首页
常用控制器

常用控制器

作者: 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