美文网首页iOS DeveloperiOS学习笔记iOS学习
iOS开发中一些常用处理及技巧

iOS开发中一些常用处理及技巧

作者: 一双鱼jn | 来源:发表于2016-09-29 18:34 被阅读143次

    调试时打印出一个对象的具体数据

    在模型类中重写debugDescription方法

    debugDescription在打断点通过LLDB po 命令打印对象时会调用,该方法是NSObject协议中的一个方法,而且NSObject中已经做了默认实现,默认是打印对象的地址和类名

    在模型中重写该方法自定义输出内容

    
    - (NSString *)debugDescription {
    
    return [NSString stringWithFormat:@"<%@:%p>:%@",[self class],&self,@{@"name" : _name,@"age" : _age}];
    
    }
    
    

    实现导航栏透明

    给导航栏一张空的背景图片即可

    
    [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
    
    

    将导航栏的线也透明

    
    self.navigationController.navigationBar.shadowImage = [UIImage new];
    
    

    导航栏透明效果根据下拉距离控制

    
    [[self.navigationController.navigationBar subviews] objectAtIndex:0].alpha = 0; // 根据偏移量改变alpha即可
    
    

    导航栏背景颜色设置

    
    self.navigationBar.barTintColor = [UIColor orangeColor];
    
    

    全局设置navigationBar、Tabbar的样式

    
    [[UINavigationBar appearance] setBarTintColor:[UIColor redColor]];
    
    [[UINavigationBar appearance] setTitleTextAttributes:@{NSFontAttributeName:[UIFont boldSystemFontOfSize:18]}];
    
    [[UITabBarItem appearance] setTitleTextAttributes:@{NSFontAttributeName : [UIFont boldSystemFontOfSize:10]}];
    
    

    打印View的所有子视图

    
    po [[self view] recursiveDescription]
    
    

    加载xib 转换为UIView

    • UINib加载
    
    UINib *nib = [UINib nibWithNibName:@"XLStockOrdersSectionHeader" bundle:[NSBundle mainBundle]];
    
    UIView *header = (UIView *)[nib instantiateWithOwner:nil options:nil].firstObject;
    
    
    • NSBundle加载
    
    UIView *header = (UIView *)[[NSBundle mainBundle] loadNibNamed:@"XLStockOrdersSectionHeader" owner:nil options:nil].firstObject;
    
    
    UINib 与 NSBundle

    NSBundle加载每次都是从本地读取xib到内存中

    UINib加载xib之后会缓存在内存中,当再次需要改xib时从内存中读取


    presentViewController

    
    TestViewController *testVC = [[TestViewController alloc] init];
    
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:testVC];
    
    [self presentViewController:nav animated:YES completion:nil];
    
    

    在每一个控制器都应该添加下面的方法,方便监控每一个控制器的销毁

    
    - (void)dealloc {
    
    #ifdef DEBUG
    
    NSLog(@"dealloc -- %@",[selfclass]);
    
    #endif
    
    }
    
    

    设置textfield的placeholder的颜色两种方法

    1. 设置textfield的attributeplaceholder

      
        NSAttributedString*attr = [[NSAttributedStringalloc]initWithString:@"占位文字"attributes:@{NSBackgroundColorAttributeName:[UIColorwhiteColor]}];
      
      self.phoneNumTextField.attributedPlaceholder= attr;
      
      
    2. 通过KVC方式

      
      [self.phoneNumTextFieldsetValue:[UIColorwhiteColor]forKeyPath:@"_placeholderLabel.textColor"];
      
      

    相关文章

      网友评论

        本文标题:iOS开发中一些常用处理及技巧

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