zoukankan      html  css  js  c++  java
  • 维护一套同时兼容 iOS 6 和 iOS 7,并且能够自动适应两个系统的 UI 风格的代码

    举例:
    ios6:test.png
    ios7:ios7_test.png
    在ios7Image.plist中添加 "test"

    PS:如果要统一成ios7风格,可以看看UI7Kit youknowone/UI7Kit 路 GitHub

    @implementation UIImage (HT)

    static NSArray *ios7Images;

    + (void)load {

    if (IOS7) {

    static dispatch_once_t once;

    dispatch_once( &once, ^{

    ios7Images = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"iOS7Images" ofType:@"plist"]];

    [NSObject swizzleClassMethod:self from:@selector(imageNamed:) to:@selector(custom_imageNamed:)];

    });

    }

    }

    + (UIImage *)custom_imageNamed:(NSString *)imageName {

    if ([ios7Images containsObject:imageName]) {

    return [self custom_imageNamed:[NSString stringWithFormat:@"ios7_%@",imageName]];

    }

    return [self custom_imageNamed:imageName];

    }

    @end




    OK,图片多的时候怎么办呢?设计师弄好全部以ios7_开头命名的图片,放到一个目录,然后代码

    NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentPath = [searchPaths objectAtIndex:0];

    NSString *path = [documentPath stringByAppendingString:@"/images"];

    NSArray *files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:NULL];

    NSMutableArray *array = [NSMutableArray array];

    for (NSString *file in files) {

    if ([file isEqualToString:@".DS_Store"]) {

    continue;

    }

    NSString *temp = [file stringByReplacingOccurrencesOfString:@"ios7_" withString:@""];

    temp = [temp stringByReplacingOccurrencesOfString:@"@2x" withString:@""];

    temp = [temp stringByReplacingOccurrencesOfString:@".png" withString:@""];

    if ([array containsObject:temp]) {

    continue;

    }

    [array addObject:temp];

    }

    NSString *plistPath = [documentPath stringByAppendingString:@"/iOS7Images.plist"];

    [array writeToFile:plistPath atomically:YES];

  • 相关阅读:
    LeetCode 72. Edit Distance
    LeetCode 71. Simplify Path
    LeetCode 70. Climbing Stairs
    LeetCode 69. Sqrt(x)
    Ubuntu系统测评
    itchat 爬了爬自己的微信通讯录
    logistic回归模型
    多元线性回归模型
    可乐鸡翅制作难点
    梯度下降算法&线性回归算法
  • 原文地址:https://www.cnblogs.com/yingkong1987/p/3338389.html
Copyright © 2011-2022 走看看