ModelBtn.m 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. //
  2. // ModelBtn.m
  3. // 乐销
  4. //
  5. // Created by 隋林栋 on 2016/12/20.
  6. // Copyright © 2016年 ping. All rights reserved.
  7. //
  8. #import "ModelBtn.h"
  9. NSString *const kModelBtnIDProperty = @"ID";
  10. NSString *const kModelBtnSubTitle = @"subTitle";
  11. NSString *const kModelBtnWidth = @"width";
  12. NSString *const kModelBtnIsHide = @"isHide";
  13. NSString *const kModelBtnTitle = @"ClassName";
  14. NSString *const kModelBtnVcName = @"vcName";
  15. NSString *const kModelBtnHighImageName = @"highImageName";
  16. NSString *const kModelBtnTag = @"tag";
  17. NSString *const kModelBtnNum = @"num";
  18. NSString *const kModelBtnIsSelected = @"isSelected";
  19. NSString *const kModelBtnImageName = @"imageName";
  20. NSString *const kModelBtnIsNotShowAnimated = @"isNotShowAnimated";
  21. NSString *const kModelBtnNumP = @"numP";
  22. @implementation ModelBtn
  23. + (instancetype)modelWithTitle:(NSString *)title{
  24. return [ModelBtn modelWithTitle:title tag:0];
  25. }
  26. + (instancetype)modelWithTitle:(NSString *)title
  27. tag:(int)tag{
  28. return [ModelBtn modelWithTitle:title imageName:nil tag:tag];
  29. }
  30. + (instancetype)modelWithTitle:(NSString *)title
  31. imageName:(NSString *)imageName
  32. tag:(int)tag{
  33. return [ModelBtn modelWithTitle:title imageName:imageName highImageName:nil tag:tag];
  34. }
  35. + (instancetype)modelWithTitle:(NSString *)title
  36. imageName:(NSString *)imageName
  37. highImageName:(NSString *)highImageName
  38. tag:(int)tag{
  39. return [ModelBtn modelWithTitle:title imageName:imageName highImageName:highImageName tag:tag color:nil];
  40. }
  41. + (instancetype)modelWithTitle:(NSString *)title
  42. imageName:(NSString *)imageName
  43. highImageName:(NSString *)highImageName
  44. tag:(int)tag
  45. color:(UIColor *)color{
  46. return [ModelBtn modelWithTitle:title imageName:imageName highImageName:highImageName tag:tag color:color selectColor:nil];
  47. }
  48. + (instancetype)modelWithTitle:(NSString *)title
  49. imageName:(NSString *)imageName
  50. highImageName:(NSString *)highImageName
  51. tag:(int)tag
  52. color:(UIColor *)color
  53. selectColor:(UIColor *)colorSelect
  54. {
  55. ModelBtn * model = [ModelBtn new];
  56. model.title = title;
  57. model.imageName = imageName;
  58. model.highImageName = highImageName;
  59. model.tag = tag;
  60. model.color = color;
  61. model.colorSelect = colorSelect;
  62. return model;
  63. }
  64. //将字符串数组转换成modelbtn 数组
  65. + (NSArray *)exchangeStrAry:(NSArray *)aryStr{
  66. NSMutableArray * aryMu = [NSMutableArray array];
  67. for (NSString * str in aryStr) {
  68. ModelBtn * modelBtn = [ModelBtn modelWithTitle:str];
  69. [aryMu addObject:modelBtn];
  70. }
  71. return aryMu;
  72. }
  73. #pragma mark init
  74. + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict {
  75. return [[self alloc] initWithDictionary:dict];
  76. }
  77. - (instancetype)initWithDictionary:(NSDictionary *)dict {
  78. self = [super init];
  79. // This check serves to make sure that a non-NSDictionary object
  80. // passed into the model class doesn't break the parsing.
  81. if (self && [dict isKindOfClass:[NSDictionary class]]) {
  82. self.number = [[self objectOrNilForKey:kModelBtnIDProperty fromDictionary:dict] doubleValue];
  83. self.subTitle = [self objectOrNilForKey:kModelBtnSubTitle fromDictionary:dict];
  84. self.width = [[self objectOrNilForKey:kModelBtnWidth fromDictionary:dict] doubleValue];
  85. self.isHide = [[self objectOrNilForKey:kModelBtnIsHide fromDictionary:dict] boolValue];
  86. self.title = [self objectOrNilForKey:kModelBtnTitle fromDictionary:dict];
  87. self.vcName = [self objectOrNilForKey:kModelBtnVcName fromDictionary:dict];
  88. self.highImageName = [self objectOrNilForKey:kModelBtnHighImageName fromDictionary:dict];
  89. self.tag = [[self objectOrNilForKey:kModelBtnTag fromDictionary:dict] doubleValue];
  90. self.num = [[self objectOrNilForKey:kModelBtnNum fromDictionary:dict] doubleValue];
  91. self.isSelected = [[self objectOrNilForKey:kModelBtnIsSelected fromDictionary:dict] boolValue];
  92. self.imageName = [self objectOrNilForKey:kModelBtnImageName fromDictionary:dict];
  93. self.isNotShowAnimated = [[self objectOrNilForKey:kModelBtnIsNotShowAnimated fromDictionary:dict] boolValue];
  94. self.numP = [[self objectOrNilForKey:kModelBtnNumP fromDictionary:dict] doubleValue];
  95. }
  96. return self;
  97. }
  98. - (NSDictionary *)dictionaryRepresentation {
  99. NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
  100. [mutableDict setValue:[NSNumber numberWithDouble:self.number] forKey:kModelBtnIDProperty];
  101. [mutableDict setValue:self.subTitle forKey:kModelBtnSubTitle];
  102. [mutableDict setValue:[NSNumber numberWithDouble:self.width] forKey:kModelBtnWidth];
  103. [mutableDict setValue:[NSNumber numberWithBool:self.isHide] forKey:kModelBtnIsHide];
  104. [mutableDict setValue:self.title forKey:kModelBtnTitle];
  105. [mutableDict setValue:self.vcName forKey:kModelBtnVcName];
  106. [mutableDict setValue:self.highImageName forKey:kModelBtnHighImageName];
  107. [mutableDict setValue:[NSNumber numberWithDouble:self.tag] forKey:kModelBtnTag];
  108. [mutableDict setValue:[NSNumber numberWithDouble:self.num] forKey:kModelBtnNum];
  109. [mutableDict setValue:[NSNumber numberWithBool:self.isSelected] forKey:kModelBtnIsSelected];
  110. [mutableDict setValue:self.imageName forKey:kModelBtnImageName];
  111. [mutableDict setValue:[NSNumber numberWithBool:self.isNotShowAnimated] forKey:kModelBtnIsNotShowAnimated];
  112. [mutableDict setValue:[NSNumber numberWithDouble:self.numP] forKey:kModelBtnNumP];
  113. return [NSDictionary dictionaryWithDictionary:mutableDict];
  114. }
  115. - (NSString *)description {
  116. return [NSString stringWithFormat:@"%@", [self dictionaryRepresentation]];
  117. }
  118. #pragma mark - Helper Method
  119. - (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict {
  120. id object = [dict objectForKey:aKey];
  121. return [object isEqual:[NSNull null]] ? nil : object;
  122. }
  123. @end