• 纯代码适配优化方案之一(内联函数的使用)


    解说:什么是内联函数?
    内联函数就是为了消除函数调用的时间开销,站在代码的角度看,他有函数的结构,在编译后却不再具备函数的性质。参考
     
    本文是参照着 iPhone6 的UI 设计原稿进行计算比例的适配。将计算适配的时间大大的缩短,大大的节省了代码适配的代码量。
     
    (1)、先在 Appdelegate.h 文件中声明:
    @property(nonatomic,assign)CGFloat autoSizeScaleX;
    @property(nonatomic,assign)CGFloat autoSizeScaleY;
     
    (2)、在 Appdelegate.m 文件中进行初始化:
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        self.autoSizeScaleX = [UIScreen mainScreen].bounds.size.width/375;
        self.autoSizeScaleY = [UIScreen mainScreen].bounds.size.height/667;
        return YES;
    }
     
    (3)、我们把内联函数写入到一个 viewController 中,通常该 viewController  是叫做一个 XXX_ViewController 的父类,这样的话,你在其它的页面直接调用父类的方法,就很简单了。
    //创建内联函数 (在程序编译的时候执行,编译前具有函数的结构,但是在编译后不再有函数的性质,能够很好的消除对函数的调用时间的开销)
    CG_INLINE CGRect  CGRectMake1(CGFloat x,CGFloat y,CGFloat width,CGFloat height){
        //创建 Appdelegate 对象,不会在程序运行的时候,不会产生对象(不存在内存循环引用的问题)
        //获取AppDelegate
         //#define MyAppDelegate ((AppDelegate *)[UIApplication sharedApplication].delegate)
        CGFloat scale_x =  MyAppDelegate.autoSizeScaleX;
        CGFloat scale_y = MyAppDelegate.autoSizeScaleY;
        //计算返回
        return CGRectMake(x*scale_x, y * scale_y, width * scale_x, height * scale_y);
    }
     
  • 相关阅读:
    Android Studio踩的坑之导入别人的Android Studio项目
    获取已发布微信小游戏和小程序源码
    小程序第三方框架对比 ( wepy / mpvue / taro )
    项目中常用的MySQL 优化
    最全反爬虫技术
    MySQL Explain详解
    php接口安全设计
    PHP进程间通信
    PHP进程及进程间通信
    springBoot优雅停服务配置
  • 原文地址:https://www.cnblogs.com/benpaobadaniu/p/5683717.html
Copyright © 2020-2023  润新知