美文网首页
今日学习

今日学习

作者: HunterDude | 来源:发表于2017-08-02 23:31 被阅读41次

    二零一七年八月二十

    pod install | pod update

    • pod install 通常使用点

      • 安装cocoapods;
      • podfile中添加、删除,新依赖库;
      • 修改podfile中指定依赖库版本号;
        每次执行pod install命令会先遵循podfile文件中的改动信息,然后再遵循podfile.lock文件而执行命令。
    • pod update通常使用点:

      • pod update 更新所有依赖库版本;
      • pod update PODNAME 更新指定依赖库版本;
        pod update命令会遵循podfile文件指令下,从而更新依赖库。若未指定依赖库版本,则会默认更新到最新版本,然后会生成新的podfile.lock文件。

    Podfile.lock

    作用:跟踪,锁定,podfile文件中依赖库的版本

    第一次运行pod install命令时,会生成此文件,此文件会锁定你****此时****podfile文件中的版本。
    之后每次修改podfile文件,或运行pod update命令时,会重新生成此文件。

    Manifest.lock

    Manifest.lock 是 Podfile.lock 的副本,每次只要生成 Podfile.lock 时就会生成一个一样的 Manifest.lock 存储在 Pods 文件夹下。在每次项目 Build 的时候,会跑一下脚本检查一下 Podfile.lock 和 Manifest.lock 是否一致。

    参考:

    pod install vs. pod update

    关于 Podfile.lock 带来的痛


    二零一七年八月十八

    iOS原生与H5交互

    • JS给OC传消息

      1、拦截跳转的方式

      JS这边发请求,iOS把请求拦下来,再扒出请求url里的字符串,再各种截取得 到有用的数据

      UIWebView 用来监听请求触发也是通过 UIWebView 相关的 delegate    method:
      web​View(_:​should​Start​Load​With:​navigation​Type:​) 
      官方文档,方法中返回一个 Boolean,来判定是否让请求继续执行。
      
      2、JavaScriptCore

      JS调用OC函数(代码块),给OC值(参数),让OC做一些事情。传值、方法 命名都按web前端开发人员来定义。两端做适配。

    • OC给JS传消息

      OC调用JS函数给JS传值,JS函数接到此值(参数)做一些事情。

      即: Objective-C执行JavaScript代码:

      // 获取当前页面的title
      NSString *title = [webview    stringByEvaluatingJavaScriptFromString:@"document.title"];
      
      // 获取当前页面的url
      NSString *url = [webview    stringByEvaluatingJavaScriptFromString:@"document.location.href"];
      
      例子:弹窗
      • 第一种方式: WebView直接调用 stringByEvaluatingJavaScriptFromString属性
      [webView stringByEvaluatingJavaScriptFromString:@"alert('test js OC')"];
      
      • 第二种方式: JavaScriptCore
      JSContext *context=[webView    valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
      NSString *alertJS=@"alert('test js OC')"; //准备执行的js代码
      [context evaluateScript:alertJS];//通过oc方法调用js的alert
      
      • 第三种就是使用WKWebview

      参考:

      Objective-C与JavaScript交互的那些事

      OC调JS |
      JS调OC

      关于iOS7里的JavaScriptCore framework


    二零一七年八月十七

    iOS 中 Cocoapods 的 Bundle

    cocoapods 管理图片资源和字体库

    如何加载cocoapods中的资源图片?
    • 1、去PodBundle中取获取资源图片
    + (UIImage *)ht_imageNamed:(NSString *)name ofType:(nullable NSString *)type {
        NSString *mainBundlePath = [NSBundle mainBundle].bundlePath;
        NSString *bundlePath = [NSString stringWithFormat:@"%@/%@",mainBundlePath,@"SMPagerTabView.bundle"];
        NSBundle *bundle = [NSBundle bundleWithPath:bundlePath];
        if (bundle == nil) {
            bundlePath = [NSString stringWithFormat:@"%@/%@",mainBundlePath,@"Frameworks/CcfaxPagerTab.framework/SMPagerTabView.bundle"];
            bundle = [NSBundle bundleWithPath:bundlePath];
        }
        if ([UIImage respondsToSelector:@selector(imageNamed:inBundle:compatibleWithTraitCollection:)]) {
            return [UIImage imageNamed:name inBundle:bundle compatibleWithTraitCollection:nil];
        } else {
            return [UIImage imageWithContentsOfFile:[bundle pathForResource:name ofType:type]];
        }
    }
    
    
        // fix:真机加载不到Bundle中资源图片。 date:20170816
        NSBundle *frameworkBundle = [NSBundle bundleForClass:self.class];
        NSURL *bundleURL = [[frameworkBundle resourceURL] URLByAppendingPathComponent:@"SMPagerTabView.bundle"];
        NSBundle *resourceBundle = [NSBundle bundleWithURL:bundleURL];
        UIImage *image = [UIImage imageNamed:@"shadowImg" inBundle:resourceBundle compatibleWithTraitCollection:nil];
        self.shadowImgView.image = image;
    

    二零一七年八月二号

    • topLayoutGuide & bottomLayoutGuide
    • topLayoutGuide表示Y轴的最高点限制,表示不希望被Status Bar或Navigation Bar遮挡的视图最高位置。
    • bottomLayoutGuide表示Y轴的最低点限制,表示不希望被UITabbarController遮挡的视图最低点距离supviewlayout的距离。
    • frame & bounds
    • frame就是相对于父视图的布局位置与大小:
    • bounds与frame最大的不同就是坐标系不同,bounds原点始终是(0,0),而frame的原点则不一定,而是相对于其父视图的坐标。

    阅读文章:

    1. UIViewControllerUIViewController生命周期

    2. Cocoa-Swift-UIViewController布局Tips

    相关文章

      网友评论

          本文标题:今日学习

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