Nenhuma Descrição

FKBindIdCardPickCell.m 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  1. //
  2. // FKBindIdCardPickVIew.m
  3. // FirstLink
  4. //
  5. // Created by jack on 15/11/3.
  6. // Copyright © 2015年 FirstLink. All rights reserved.
  7. //
  8. #import "FKBindIdCardPickCell.h"
  9. #define DEFAULT_BIND_ADD_IMG ([UIImage imageNamed:@"idCardAdd"])
  10. #define ID_CARD_IMG_H 210
  11. #define ID_CARD_IMG_W 250
  12. @implementation FKBindIdCardPickCell
  13. - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
  14. if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
  15. self.contentView.backgroundColor = UIColorFromRGB(0xffffff);
  16. self.selectionStyle = UITableViewCellSelectionStyleNone;
  17. [self addAllSubviews];
  18. }
  19. return self;
  20. }
  21. - (void)addAllSubviews{
  22. UIImageView *faceContainer = ({
  23. UIImageView *imageView = [[UIImageView alloc]initWithImage:DEFAULT_BIND_ADD_IMG];
  24. imageView.layer.cornerRadius = 5;
  25. imageView.layer.masksToBounds = YES;
  26. imageView;
  27. });
  28. [self.contentView addSubview:faceContainer];
  29. [faceContainer mas_makeConstraints:^(MASConstraintMaker *make) {
  30. make.top.equalTo(self.contentView).offset(35);
  31. make.centerX.equalTo(self.contentView.mas_centerX).multipliedBy(0.5);
  32. make.width.mas_equalTo(125);
  33. make.height.mas_equalTo(105);
  34. }];
  35. [self.contentView addSubview:self.faceImgView];
  36. [self.faceImgView mas_makeConstraints:^(MASConstraintMaker *make) {
  37. make.center.equalTo(faceContainer);
  38. make.width.equalTo(faceContainer).offset(- 3);
  39. make.height.equalTo(faceContainer).offset(- 3);
  40. }];
  41. UIImageView *inverseContainer = ({
  42. UIImageView *imageView = [[UIImageView alloc]initWithImage:DEFAULT_BIND_ADD_IMG];
  43. imageView.layer.cornerRadius = 5;
  44. imageView.layer.masksToBounds = YES;
  45. imageView;
  46. });
  47. [self.contentView addSubview:inverseContainer];
  48. [inverseContainer mas_makeConstraints:^(MASConstraintMaker *make) {
  49. make.top.equalTo(self.faceImgView);
  50. make.centerX.equalTo(self.contentView.mas_centerX).multipliedBy(1.5);
  51. make.width.mas_equalTo(125);
  52. make.height.mas_equalTo(105);
  53. }];
  54. [self.contentView addSubview:self.inverseImgView];
  55. [self.inverseImgView mas_makeConstraints:^(MASConstraintMaker *make) {
  56. make.center.equalTo(inverseContainer);
  57. make.width.equalTo(inverseContainer).offset(- 3);
  58. make.height.equalTo(inverseContainer).offset(- 3);
  59. }];
  60. [self.contentView addSubview:self.faceRemoveBtn];
  61. [self.faceRemoveBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  62. make.centerX.equalTo(self.faceImgView.mas_right).offset(- 15);
  63. make.centerY.equalTo(self.faceImgView.mas_top);
  64. make.width.height.mas_equalTo(@25);
  65. }];
  66. [self.contentView addSubview:self.inverseRemoveBtn];
  67. [self.inverseRemoveBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  68. make.centerX.equalTo(self.inverseImgView.mas_right).offset(- 15);
  69. make.centerY.equalTo(self.inverseImgView.mas_top);
  70. make.width.height.mas_equalTo(@25);
  71. }];
  72. UILabel *faceLabel = ({
  73. UILabel *label = [[UILabel alloc] init];
  74. label.text = @"身份证正面照";
  75. label.textColor = UIColorFromRGB(0x666666);
  76. label.font = [UIFont systemFontOfSize:14];
  77. [label setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisVertical];
  78. label;
  79. });
  80. [self.contentView addSubview:faceLabel];
  81. [faceLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  82. make.top.equalTo(self.faceImgView.mas_bottom).offset(15);
  83. make.centerX.equalTo(self.faceImgView);
  84. }];
  85. UILabel *inverseLabel = ({
  86. UILabel *label = [[UILabel alloc] init];
  87. label.text = @"身份证反面照";
  88. label.textColor = UIColorFromRGB(0x666666);
  89. label.font = [UIFont systemFontOfSize:14];
  90. label;
  91. });
  92. [self.contentView addSubview:inverseLabel];
  93. [inverseLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  94. make.top.equalTo(self.inverseImgView.mas_bottom).offset(15);
  95. make.centerX.equalTo(self.inverseImgView);
  96. }];
  97. UILabel *promptLabel = ({
  98. UILabel *label = [[UILabel alloc] init];
  99. label.text = @"(身份证号及照片仅用于清关用途,请放心上传)";
  100. label.textColor = UIColorFromRGB(0x999999);
  101. label.font = [UIFont systemFontOfSize:14];
  102. label;
  103. });
  104. [self.contentView addSubview:promptLabel];
  105. [promptLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  106. make.top.equalTo(faceLabel.mas_bottom).offset(15);
  107. make.centerX.equalTo(self.contentView);
  108. }];
  109. UILabel *cardLabel = ({
  110. UILabel *label = [[UILabel alloc]init];
  111. label.textColor = UIColorFromRGB(0x333333);
  112. label.font = [UIFont systemFontOfSize:15];
  113. label.text = @"身份证号:";
  114. [label setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
  115. label;
  116. });
  117. [self.contentView addSubview:cardLabel];
  118. [cardLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  119. make.top.equalTo(promptLabel.mas_bottom).offset(40);
  120. make.left.equalTo(faceContainer);
  121. }];
  122. UIView *inputLine = ({
  123. UIView *view = [[UIView alloc]init];
  124. view.backgroundColor = UIColorFromRGB(0xcccccc);
  125. view;
  126. });
  127. [self.contentView addSubview:inputLine];
  128. [inputLine mas_makeConstraints:^(MASConstraintMaker *make) {
  129. make.bottom.mas_equalTo(cardLabel).offset(2);
  130. make.left.equalTo(cardLabel.mas_right).offset(2);
  131. make.right.equalTo(self.inverseImgView);
  132. make.height.mas_equalTo(0.5);
  133. }];
  134. [self.contentView addSubview:self.textField];
  135. [self.textField mas_makeConstraints:^(MASConstraintMaker *make) {
  136. make.left.equalTo(inputLine);
  137. make.centerY.equalTo(cardLabel).offset(0);
  138. make.height.mas_equalTo(30);
  139. make.width.mas_equalTo(inputLine).offset(- 30);
  140. }];
  141. [self.contentView addSubview:self.moreIdBtn];
  142. [self.moreIdBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  143. make.centerX.equalTo(inputLine.mas_right).offset(- 3);
  144. make.centerY.equalTo(self.textField);
  145. make.width.height.mas_equalTo(35);
  146. }];
  147. [self.contentView addSubview:self.saveBtn];
  148. [self.saveBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  149. make.top.equalTo(cardLabel.mas_bottom).offset(30);
  150. make.centerX.equalTo(self.contentView);
  151. make.width.mas_equalTo(290);
  152. make.height.mas_equalTo(35);
  153. }];
  154. [self.contentView addSubview:self.cancelBtn];
  155. [self.cancelBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  156. make.top.equalTo(self.saveBtn.mas_bottom).offset(20);
  157. make.centerX.equalTo(self.contentView);
  158. make.width.mas_equalTo(290);
  159. make.height.mas_equalTo(35);
  160. }];
  161. }
  162. + (NSString *)cdnImgUrlStrWithUrlString:(NSString *)url{
  163. if (url.length == 0) return nil;
  164. return [NSString stringWithFormat:@"%@%@", url, [FLStringHelper cdnParamaterString:ID_CARD_IMG_W height:ID_CARD_IMG_H]];
  165. }
  166. #pragma mark - action
  167. - (void)clickAcitonBtn:(UIButton *)sender{
  168. if ([self.delegate respondsToSelector:@selector(didClickBtnWithActionType:)]) {
  169. [self.delegate didClickBtnWithActionType:sender.tag];
  170. }
  171. }
  172. - (void)clickAddImgView:(UITapGestureRecognizer *)tap{
  173. if ([tap.view isKindOfClass:[UIImageView class]]){
  174. kPickCellActionType actionType = tap.view.tag == 0 ? kAcitonTypePickFace : kAcitonTypePickInverse;
  175. if ([self.delegate respondsToSelector:@selector(didClickBtnWithActionType:)]) {
  176. [self.delegate didClickBtnWithActionType:actionType];
  177. }
  178. }
  179. }
  180. - (void)clickRemoveBtn:(UIButton *)sender{
  181. if (sender.tag == kAcitonTypeRemoveFace) {
  182. self.faceImgView.image = nil;
  183. self.faceRemoveBtn.hidden = YES;
  184. }else if (sender.tag == kAcitonTypeRemoveInverse){
  185. self.inverseImgView.image = nil;
  186. self.inverseRemoveBtn.hidden = YES;
  187. }
  188. if ([self.delegate respondsToSelector:@selector(didClickBtnWithActionType:)]) {
  189. [self.delegate didClickBtnWithActionType:sender.tag];
  190. }
  191. }
  192. #pragma mark - UITextFieldDelegate
  193. - (BOOL)textFieldShouldReturn:(UITextField *)textField {
  194. [textField resignFirstResponder];
  195. return YES;
  196. }
  197. #pragma mark - property
  198. - (UIImageView *)faceImgView{
  199. if (_faceImgView == nil) {
  200. _faceImgView = [[UIImageView alloc]init];
  201. _faceImgView.userInteractionEnabled = YES;
  202. _faceImgView.tag = 0;
  203. _faceImgView.layer.cornerRadius = 5;
  204. _faceImgView.layer.masksToBounds = YES;
  205. UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickAddImgView:)];
  206. tap.numberOfTapsRequired = 1;
  207. [_faceImgView addGestureRecognizer:tap];
  208. }
  209. return _faceImgView;
  210. }
  211. - (UIImageView *)inverseImgView{
  212. if (_inverseImgView == nil) {
  213. _inverseImgView = [[UIImageView alloc]init];
  214. _inverseImgView.userInteractionEnabled = YES;
  215. _inverseImgView.tag = 1;
  216. _inverseImgView.layer.cornerRadius = 5;
  217. _inverseImgView.layer.masksToBounds = YES;
  218. UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickAddImgView:)];
  219. tap.numberOfTapsRequired = 1;
  220. [_inverseImgView addGestureRecognizer:tap];
  221. }
  222. return _inverseImgView;
  223. }
  224. - (UIButton *)moreIdBtn{
  225. if (_moreIdBtn == nil) {
  226. _moreIdBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  227. _moreIdBtn.tag = kAcitonTypeMoreIdCard;
  228. [_moreIdBtn setImage:[UIImage imageNamed:@"Alpha3_more_icon"] forState:UIControlStateNormal];
  229. [_moreIdBtn addTarget:self action:@selector(clickAcitonBtn:) forControlEvents:UIControlEventTouchUpInside];
  230. }
  231. return _moreIdBtn;
  232. }
  233. - (UIButton *)saveBtn{
  234. if (_saveBtn == nil) {
  235. _saveBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  236. _saveBtn.titleLabel.font = [UIFont systemFontOfSize:15];
  237. _saveBtn.layer.cornerRadius = 4;
  238. _saveBtn.tag = kAcitonTypeSave;
  239. [_saveBtn setBackgroundColor:UIColorFromRGB(0xff6362)];
  240. [_saveBtn setTitle:@"保 存" forState:UIControlStateNormal];
  241. [_saveBtn setTitleColor:UIColorFromRGB(0xffffff) forState:UIControlStateNormal];
  242. [_saveBtn addTarget:self action:@selector(clickAcitonBtn:) forControlEvents:UIControlEventTouchUpInside];
  243. }
  244. return _saveBtn;
  245. }
  246. - (UIButton *)cancelBtn{
  247. if (_cancelBtn == nil) {
  248. _cancelBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  249. _cancelBtn.titleLabel.font = [UIFont systemFontOfSize:15];
  250. _cancelBtn.layer.cornerRadius = 4;
  251. _cancelBtn.tag = kAcitonTypeCancel;
  252. [_cancelBtn setBackgroundColor:UIColorFromRGB(0x49d0bb)];
  253. [_cancelBtn setTitle:@"下次再说" forState:UIControlStateNormal];
  254. [_cancelBtn setTitleColor:UIColorFromRGB(0x333333) forState:UIControlStateNormal];
  255. [_cancelBtn addTarget:self action:@selector(clickAcitonBtn:) forControlEvents:UIControlEventTouchUpInside];
  256. }
  257. return _cancelBtn;
  258. }
  259. - (UIButton *)faceRemoveBtn{
  260. if (_faceRemoveBtn == nil) {
  261. _faceRemoveBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  262. [_faceRemoveBtn setImage:[UIImage imageNamed:@"red_remove"] forState:UIControlStateNormal];
  263. [_faceRemoveBtn addTarget:self action:@selector(clickRemoveBtn:) forControlEvents:UIControlEventTouchUpInside];
  264. _faceRemoveBtn.tag = kAcitonTypeRemoveFace;
  265. }
  266. return _faceRemoveBtn;
  267. }
  268. - (UIButton *)inverseRemoveBtn{
  269. if (_inverseRemoveBtn == nil) {
  270. _inverseRemoveBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  271. [_inverseRemoveBtn setImage:[UIImage imageNamed:@"red_remove"] forState:UIControlStateNormal];
  272. [_inverseRemoveBtn addTarget:self action:@selector(clickRemoveBtn:) forControlEvents:UIControlEventTouchUpInside];
  273. _inverseRemoveBtn.tag = kAcitonTypeRemoveInverse;
  274. }
  275. return _inverseRemoveBtn;
  276. }
  277. - (UITextField *)textField{
  278. if (_textField == nil) {
  279. _textField = [[UITextField alloc]init];
  280. _textField.delegate = self;
  281. _textField.returnKeyType = UIReturnKeyDone;
  282. }
  283. return _textField;
  284. }
  285. @end