TCUserInfoCell.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. //
  2. // TCUserInfoCell.h
  3. // TCLVBIMDemo
  4. //
  5. // Created by jemilyzhou on 16/8/1.
  6. // Copyright © 2016年 tencent. All rights reserved.
  7. //
  8. #import <UIKit/UIKit.h>
  9. #import <Foundation/Foundation.h>
  10. #import "TCUserInfoModel.h"
  11. #import "TCEditUserInfoViewController.h"
  12. @class TCUserInfoCellItem;
  13. @class TCUserInfoTableViewCell;
  14. @class TCEditUserInfoTableViewCell;
  15. #define kNicknameMaxLength 20 //用户输入的昵称长度
  16. typedef void (^TCUserInfoCellAction)(TCUserInfoCellItem *menu, id cell);
  17. // 枚举,用于区分目前所有的tableview中的每一条cell
  18. typedef NS_ENUM(NSInteger, TCUserInfoCellType)
  19. {
  20. // 代表 编辑个人信息 页面上的元素,包括头像,昵称,性别
  21. TCUserInfo_EditFace,
  22. TCUserInfo_EditNick,
  23. TCUserInfo_EditGender,
  24. // 代表点击 用户信息 界面上的元素
  25. TCUserInfo_View, // 展示个人信息cell(头像,昵称,id在此cell内部从上到下依次排列)
  26. TCUserInfo_Edit, // 点击后切换到 编辑个人信息 页面
  27. TCUserInfo_About, // 点击后显示小直播版本号
  28. TCUserInfo_Authenticate, // 实名认证
  29. };
  30. /*
  31. * TCUserInfoCellItem 类说明 : 该类用于存储tableview中每一条cell内容
  32. *
  33. * 包括点击后的回调函数,文字,cell类型信息
  34. *
  35. * 计算高度也在这里,根据item 中的 type计算
  36. *
  37. */
  38. @interface TCUserInfoCellItem : NSObject
  39. @property (nonatomic, assign) TCUserInfoCellType type;
  40. @property (nonatomic, copy) NSString *tip;
  41. @property (nonatomic, copy) NSString *value;
  42. @property (nonatomic, copy) TCUserInfoCellAction action;
  43. + (NSInteger)heightOf:(TCUserInfoCellItem *)item;
  44. - (instancetype)initWith:(NSString *)tip value:(NSString *)value type:(TCUserInfoCellType)type action:(TCUserInfoCellAction)action;
  45. @end
  46. /*
  47. * TCUserInfoTableViewCell 类说明 : 该类主要绘制用户点击个人信息页面后的tableview界面
  48. *
  49. * 目前该界面包含3个cell:
  50. *
  51. * 第一个cell由用户头像,昵称,id从上到下依次排列 背景色为深灰色,文字为白色,头像为圆形并且绿色边框
  52. * 该cell占据了iPhone屏幕大约40%的高度 不响应点击消息
  53. *
  54. * 第二个cell显示文字为 编辑个人信息 点击后切换到 编辑个人信息 页面,右边有个箭头
  55. *
  56. * 第三个cell显示文字为 关于小直播 点击后弹框显示版本号 右边有个小箭头
  57. */
  58. @interface TCUserInfoTableViewCell : UITableViewCell
  59. {
  60. @public
  61. // 头像,昵称,id从上到下依次居中排列在第一个大cell内部
  62. UIImageView *faceImage;
  63. UILabel *nickText;
  64. UILabel *identifierText;
  65. __weak TCUserInfoCellItem *_item;
  66. }
  67. @property (nonatomic, weak) TCUserInfoCellItem *item;
  68. - (void)initUserinfoViewCellData:(TCUserInfoCellItem *)item;
  69. - (void)drawRichCell:(TCUserInfoCellItem *)item;
  70. @end
  71. /*
  72. * TCEditUserInfoTableViewCell 类说明 : 该类用于绘制 编辑个人信息 页面上的tableview,用户可直接编辑
  73. *
  74. * 目前该界面包含3个cell:
  75. *
  76. * 第一个cell显示头像,点击后可选择 相机 or 相册,然后选择图片,之后剪裁成200*200头像上传
  77. *
  78. * 第二个cell显示昵称,点击后可以直接在tableview中编辑,昵称最大长度为20字节,编辑完成后点击空白处键盘消失或者点击键盘上完成按钮保存上传
  79. *
  80. * 第三个cell显示性别,点击后弹框选择 男 or 女 选中后直接上传保存
  81. */
  82. @interface TCEditUserInfoTableViewCell : UITableViewCell
  83. {
  84. @public
  85. // 用于显示 编辑个人信息 页面上的头像右侧图片
  86. UIImageView *faceImage;
  87. // 用于显示 编辑个人信息 页面上的昵称右边的昵称文字,可点击后直接编辑
  88. UITextField *nickText;
  89. // 用于显示 编辑个人信息 页面上的性别右边的性别文字(男 or 女)
  90. UILabel *genderText;
  91. __weak TCUserInfoCellItem *_item;
  92. }
  93. @property (nonatomic, weak) TCUserInfoCellItem *item;
  94. - (void)initUserinfoViewCellData:(TCUserInfoCellItem *)item;
  95. - (void)drawRichCell:(TCUserInfoCellItem *)item delegate:(id)view;
  96. @end