Ray Zhang 10 éve
szülő
commit
2750733953

+ 14 - 0
RedAnt ERP Mobile/common/Functions/DefaultAppearance.h

@@ -0,0 +1,14 @@
+//
+//  DefaultAppearance.h
+//  HMLG Mobile
+//
+//  Created by Ray on 5/25/16.
+//  Copyright © 2016 United Software Applications, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface DefaultAppearance : NSObject
++(void)init_appearance;
++(NSString*)get_noneappearance_value:(NSString*) control valuename:(NSString*)valuename;
+@end

+ 300 - 0
RedAnt ERP Mobile/common/Functions/DefaultAppearance.m

@@ -0,0 +1,300 @@
+//
+//  DefaultAppearance.m
+//  HMLG Mobile
+//
+//  Created by Ray on 5/25/16.
+//  Copyright © 2016 United Software Applications, Inc. All rights reserved.
+//
+
+#import "DefaultAppearance.h"
+#import "LoginViewController.h"
+#import "CategoryCellNPD.h"
+#import "CategoryHeaderView.h"
+#import "DefaultTableHeaderView.h"
+#import "CategoryCellSmall.H"
+#import "ModelItemCell.h"
+#import "PDFListTableViewCell.h"
+#import "ContactListTableViewCell.h"
+#import "CategoryCellNPD.h"
+#import "CommonEditorCellMAction.h"
+
+@implementation DefaultAppearance
++(void)init_appearance
+{
+    
+    [self load_appearance];
+    //gloable
+//    [[UIButton appearance] setTitleColor:UIColorFromRGB(0x007aff) forState:UIControlStateNormal];
+//    
+//    [[UIActivityIndicatorView appearance] setColor:UIColorFromRGB(0x007aff) ];
+//    
+//    //category
+//    [[CategoryCellNPD appearance].layer setBorderColor:[UIColor redColor].CGColor];
+//    [[CategoryCellNPD appearance].layer setBorderWidth:0.5];
+//    
+//    
+//    
+//    //cell.layer.borderWidth = 0.5;
+//    [[UILabel appearanceWhenContainedInInstancesOfClasses:[NSArray arrayWithObject:[CategoryHeaderView class]]] setTextColor:[UIColor darkGrayColor]];
+//    
+//    
+//   // model detail
+//    
+//    [[DefaultTableHeaderView appearance] setBackgroundColor:[UIColor lightGrayColor]];
+////    
+//    [[UILabel appearanceWhenContainedInInstancesOfClasses:[NSArray arrayWithObject:[DefaultTableHeaderView class]]] setTextColor:[UIColor redColor]];
+//    [[UILabel appearanceWhenContainedInInstancesOfClasses:[NSArray arrayWithObject:[DefaultTableHeaderView class]]] setFont:[UIFont boldSystemFontOfSize:40]];
+////    
+//
+//    [[CategoryCellSmall appearance] setBackgroundColor:[UIColor lightGrayColor]];
+//    [[UILabel appearanceWhenContainedInInstancesOfClasses:[NSArray arrayWithObject:[DefaultTableHeaderView class]]] setTextColor:[UIColor darkGrayColor]];
+//    DefaultTableHeaderView* myView = [[DefaultTableHeaderView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 0.0001)];
+    // myView.backgroundColor =  UIColorFromRGB(0x996633);
+    
+    
+   // [[CategoryCellNPD.layer appearance]..borderColor = UIColorFromRGB(0x996633).CGColor];
+//    [[LoginViewController appearance] setTitle:@"HMLG"];
+    
+}
++(NSString*)get_noneappearance_value:(NSString*) control valuename:(NSString*)valuename
+{
+    NSData* json =[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:@"default_appearance" ofType:@"json" ]];
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary* appearance_json = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error][@"none_appearance"] ;
+    NSDictionary* setting_json = appearance_json[control];
+    NSString* value = setting_json[valuename];
+    return value;
+}
++(void)load_appearance
+{
+    NSData* json =[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:@"default_appearance" ofType:@"json" ]];
+    NSError *error=nil;
+    if(json==nil)
+        return;
+    NSDictionary* appearance_json = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error][@"appearance"] ;
+    int count = [appearance_json[@"count"] intValue];
+    for(int i=0;i<count;i++)
+    {
+        NSString * group = [NSString stringWithFormat:@"group_%d",i];
+        NSDictionary* group_json = appearance_json[group];
+        int item_count = [group_json[@"count"] intValue];
+        for(int j=0;j<item_count;j++)
+        {
+            NSString * item = [NSString stringWithFormat:@"item_%d",j];
+            NSDictionary* item_json = group_json[item];
+
+            
+            [self set_appearance_item:item_json];
+        }
+    }
+
+}
++(id) get_appearance:(NSString*) control container:(NSDictionary*)container_json
+{
+    // json 中添加 control 类型必须在此函数中添加对应代码
+    if([control isEqualToString:@"UIButton"])
+    {
+        if(container_json==nil)
+            return [UIButton appearance];
+        else
+        {
+             NSArray* arr_container = [self appearance_container:container_json];
+            return [UIButton appearanceWhenContainedIn: arr_container[0], nil];
+        }
+    }
+    else if([control isEqualToString:@"UIActivityIndicatorView"])
+        {
+            if(container_json==nil)
+                return [UIActivityIndicatorView appearance];
+            else
+            {
+                NSArray* arr_container = [self appearance_container:container_json];
+                return [UIActivityIndicatorView appearanceWhenContainedIn: arr_container[0], nil];
+            }
+        }
+    else if([control isEqualToString:@"CategoryCellNPD"])
+        {
+                if(container_json==nil)
+                    return [CategoryCellNPD appearance];
+                else
+                {
+                    NSArray* arr_container = [self appearance_container:container_json];
+                    return [CategoryCellNPD appearanceWhenContainedIn: arr_container[0], nil];
+                }
+        }
+    else if([control isEqualToString:@"UILabel"])
+    {
+        if(container_json==nil)
+            return [UILabel appearance];
+        else
+        {
+            NSArray* arr_container = [self appearance_container:container_json];
+            return [UILabel appearanceWhenContainedIn: arr_container[0], nil];
+        }
+    }
+    else if([control isEqualToString:@"DefaultTableHeaderView"])
+    {
+        if(container_json==nil)
+            return [DefaultTableHeaderView appearance];
+        else
+        {
+            NSArray* arr_container = [self appearance_container:container_json];
+            return [DefaultTableHeaderView appearanceWhenContainedIn: arr_container[0], nil];
+        }
+    }
+    else if([control isEqualToString:@"CategoryCellSmall"])
+    {
+        if(container_json==nil)
+            return [CategoryCellSmall appearance];
+        else
+        {
+            NSArray* arr_container = [self appearance_container:container_json];
+            return [CategoryCellSmall appearanceWhenContainedIn: arr_container[0], nil];
+        }
+    }
+    else if([control isEqualToString:@"UIBarButtonItem"])
+    {
+        if(container_json==nil)
+            return [UIBarButtonItem appearance];
+        else
+        {
+            NSArray* arr_container = [self appearance_container:container_json];
+            return [UIBarButtonItem appearanceWhenContainedIn: arr_container[0], nil];
+        }
+    }
+    else if([control isEqualToString:@"UINavigationBar"])
+    {
+        if(container_json==nil)
+            return [UINavigationBar appearance];
+        else
+        {
+            NSArray* arr_container = [self appearance_container:container_json];
+            return [UINavigationBar appearanceWhenContainedIn: arr_container[0], nil];
+        }
+    }
+    return nil;
+}
++(void) set_appearance_item:(NSDictionary*) item_json
+{
+    NSDictionary* container_json= item_json[@"container"];
+    NSString* control = item_json[@"control"];
+    NSString* function = item_json[@"function"];
+    NSString* value = item_json[@"value"];
+    id appearance=[self get_appearance:control container:container_json];
+    [self appearance_function:appearance function:function value:value];
+}
++(void) appearance_function:(id)appearance function:(NSString*)function value:(NSString*)value
+{
+    // json 中添加 function 类型必须在此函数中添加对应代码
+    if([function isEqualToString:@"setTitleColor.Normal"])
+    {
+        unsigned long color = strtoul([value UTF8String],0,16);
+        [appearance setTitleColor:UIColorFromRGB(color) forState:UIControlStateNormal];
+    }
+    else if([function isEqualToString:@"setColor"])
+    {
+        unsigned long color = strtoul([value UTF8String],0,16);
+        [appearance setColor:UIColorFromRGB(color) ];
+    }
+//    else if([function isEqualToString:@"layer.BorderColor"])
+//    {
+//        unsigned long color = strtoul([value UTF8String],0,16);
+//        
+//        [[appearance layer] setBorderColor:UIColorFromRGB(color).CGColor];
+////        [[appearance layer] setBorderColor:[UIColor redColor].CGColor];
+//      //  [appearance.layer setBorderColor:[UIColor lightGrayColor].CGColor];
+//       // [appearance setColor:UIColorFromRGB(color) ];
+//    }
+    else if([function isEqualToString:@"setTextColor"])
+    {
+        unsigned long color = strtoul([value UTF8String],0,16);
+        [appearance setTextColor:UIColorFromRGB(color) ];
+    }
+    else if([function isEqualToString:@"setBackgroundColor"])
+    {
+        unsigned long color = strtoul([value UTF8String],0,16);
+        [appearance setBackgroundColor:UIColorFromRGB(color) ];
+    }
+    else if([function isEqualToString:@"TintColor"])
+    {
+        unsigned long color = strtoul([value UTF8String],0,16);
+        [appearance setTintColor:UIColorFromRGB(color) ];
+    }
+    
+//    else if([function isEqualToString:@"setFont.Bold"])
+//    {
+//        long size = [value intValue];
+//        [appearance setFont:[UIFont boldSystemFontOfSize:size] ];
+//    }
+//    [[UILabel appearanceWhenContainedInInstancesOfClasses:[NSArray arrayWithObject:[DefaultTableHeaderView class]]] setTextColor:[UIColor whiteColor]];
+//    [[UILabel appearanceWhenContainedInInstancesOfClasses:[NSArray arrayWithObject:[DefaultTableHeaderView class]]] setFont:[UIFont boldSystemFontOfSize:20]];
+//    
+//    
+//    [[CategoryCellSmall appearance] setBackgroundColor:[UIColor lightGrayColor]];
+    
+//    [[UILabel appearanceWhenContainedInInstancesOfClasses:[NSArray arrayWithObject:[CategoryHeaderView class]]] setTextColor:[UIColor darkGrayColor]];
+
+    //[[UIActivityIndicatorView appearance] setColor:UIColorFromRGB(0x007aff) ];
+}
++(NSArray*) appearance_container:(NSDictionary*) container_json
+{
+    // json 中添加 container 类型必须在此函数中添加对应代码
+    NSMutableArray* arr=[[NSMutableArray alloc]init];
+    
+    int count = [container_json[@"count"] intValue];
+    // container 只允许有一个,因为多个设置会失败,原因不明。
+    count=1;
+    for(int i=0;i<count;i++)
+    {
+        NSString * item = [NSString stringWithFormat:@"item_%d",i];
+        NSString* container = container_json[item];
+        if([container isEqualToString:@"CategoryHeaderView"])
+        {
+            [arr addObject:[CategoryHeaderView class]];
+        }
+        if([container isEqualToString:@"CommonEditorCellMAction"])
+        {
+            [arr addObject:[CommonEditorCellMAction class]];
+        }
+        
+        else if([container isEqualToString:@"DefaultTableHeaderView"])
+        {
+            [arr addObject:[DefaultTableHeaderView class]];
+        }
+        else if([container isEqualToString:@"UINavigationBar"])
+        {
+            [arr addObject:[UINavigationBar class]];
+        }
+        else if([container isEqualToString:@"UINavigationItem"])
+        {
+            [arr addObject:[UINavigationItem class]];
+        }
+        else if([container isEqualToString:@"ModelItemCell"])
+        {
+            [arr addObject:[ModelItemCell class]];
+        }
+        else if([container isEqualToString:@"PDFListTableViewCell"])
+        {
+            [arr addObject:[PDFListTableViewCell class]];
+        }
+        else if([container isEqualToString:@"UIToolbar"])
+        {
+            [arr addObject:[UIToolbar class]];
+        }
+        else if([container isEqualToString:@"ContactListTableViewCell"])
+        {
+            [arr addObject:[ContactListTableViewCell class]];
+        }
+        else if([container isEqualToString:@"CategoryCellNPD"])
+        {
+            [arr addObject:[CategoryCellNPD class]];
+        }
+        
+        
+    }
+    return arr;
+}
+//[UIBarButtonItem apperanceWhenContainedIn: [UINavigationController class],nil] setBackgroundImage:bimg forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
+@end