123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284 |
- #import "InstitutionMineBodyView.h"
- #import <UIImageView+DisplayImage.h>
- #import "TYPageControl.h"
- #import "TenantMineFunctionView.h"
- #define MAX_FUNCROWCOUNT (IS_IPAD ? 6 : 4)
- @interface InstitutionMineBodyView ()<UIScrollViewDelegate>
- @property (weak, nonatomic) IBOutlet UIView *toolBgView;
- @property (weak, nonatomic) IBOutlet UIImageView *bgImageView;
- @property (weak, nonatomic) IBOutlet NSLayoutConstraint *bgImageWidth;
- @property (weak, nonatomic) IBOutlet NSLayoutConstraint *bgImageHeight;
- @property (weak, nonatomic) IBOutlet NSLayoutConstraint *userNameTop;
- @property (weak, nonatomic) IBOutlet UIImageView *userAvatar;
- @property (weak, nonatomic) IBOutlet UILabel *userName;
- @property (weak, nonatomic) IBOutlet UIImageView *memberImg;
- @property (weak, nonatomic) IBOutlet UIView *subjectView;
- @property (weak, nonatomic) IBOutlet UILabel *subjectLabel;
- @property (weak, nonatomic) IBOutlet UILabel *toolDesc;
- @property (nonatomic, copy) INSMineViewCallback callback;
- @property (nonatomic, strong) UIImage *preDisplayImage;
- @property (weak, nonatomic) IBOutlet UILabel *tenantName;
- @property (weak, nonatomic) IBOutlet UIView *functionView;
- @property (nonatomic, strong) UIScrollView *functionScrollView;
- @property (nonatomic, strong) TYPageControl *pageControl;
- @property (nonatomic, strong) NSMutableArray *imageArray;
- @property (nonatomic, strong) NSMutableArray *titleArray;
- @property (nonatomic, strong) NSMutableArray *tagArray;
- @property (weak, nonatomic) IBOutlet UIView *customServiceView;
- @property (weak, nonatomic) IBOutlet NSLayoutConstraint *customServiceHeight;
- @property (weak, nonatomic) IBOutlet UIView *bottomLine;
- @end
- @implementation InstitutionMineBodyView
- - (void)awakeFromNib {
- [super awakeFromNib];
-
- self.functionScrollView.contentSize = CGSizeMake((KPortraitWidth - 26)*2, 74);
- [self.functionView addSubview:self.pageControl];
- self.pageControl.currentPage = 0;
-
- [self.functionView addSubview:self.functionScrollView];
- [self.functionScrollView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.right.top.bottom.mas_equalTo(self.functionView);
- }];
- self.functionScrollView.delegate = self;
- [self configFunctionView];
- NSString *bgName = IS_IPAD ? @"insititution_MineBgPad" : @"insititution_MineBg";
- UIImage *bgImage = [UIImage imageNamed:bgName];
- [self.bgImageView setImage:bgImage];
- CGFloat height = bgImage.size.height / bgImage.size.width * KPortraitWidth;
- self.bgImageWidth.constant = KPortraitWidth;
- self.bgImageHeight.constant = height;
-
- [self createToolViewLayer];
- }
- - (void)createToolViewLayer {
- CGFloat borderWidth = 1.5;
- CGRect frame = CGRectMake(0, 0, KPortraitWidth - (19 - borderWidth) * 2, 60);
- CGFloat radius = 28 + borderWidth;
-
- CAGradientLayer *colorLayer = [UIView createGradientLayerFromColor:HexRGB(0xFFD3E7) startPoint:CGPointMake(0, 0.36) endColor:HexRGB(0xFFE7D4) endPoint:CGPointMake(1, 0.36) bounds:frame];
- [self.toolBgView.layer addSublayer:colorLayer];
-
- UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:frame byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(radius, radius)];
- CAShapeLayer *maskLayer = [CAShapeLayer layer];
- maskLayer.frame = frame;
- maskLayer.path = path.CGPath;
- self.toolBgView.layer.mask = maskLayer;
-
- CAShapeLayer *borderLayer = [CAShapeLayer layer];
- borderLayer.frame = frame;
- borderLayer.path = path.CGPath;
- borderLayer.lineWidth = borderWidth;
- borderLayer.fillColor = [UIColor clearColor].CGColor;
- borderLayer.strokeColor = HexRGB(0xffffff).CGColor;
- borderLayer.masksToBounds = NO;
- [self.toolBgView.layer addSublayer:borderLayer];
- }
- + (instancetype)shareInstance {
- InstitutionMineBodyView *view = [[[NSBundle mainBundle] loadNibNamed:@"InstitutionMineBodyView" owner:nil options:nil] firstObject];
- return view;
- }
- - (void)operationCallback:(INSMineViewCallback)callback {
- if (callback) {
- self.callback = callback;
- }
- }
- - (void)configWithSource:(UserInfo *)sourceModel {
- if (![NSString isEmptyString:sourceModel.heardUrl]) {
- if (self.preDisplayImage == nil) {
- self.preDisplayImage = [UIImage imageNamed:CLIENT_USERDEFAULT_LOGO];
- }
- [self.userAvatar displayImageWithUrl:[NSURL URLWithString:[sourceModel.heardUrl getUrlEndcodeString]] placeholder:self.preDisplayImage defaultImage:[UIImage imageNamed:CLIENT_USERDEFAULT_LOGO] callback:^(UIImage * _Nonnull image) {
- self.preDisplayImage = image;
- }];
- }
- else {
- [self.userAvatar setImage:[UIImage imageNamed:CLIENT_USERDEFAULT_LOGO]];
- }
- self.userName.text = [NSString returnNoNullStringWithString:sourceModel.username];
-
- NSString *subjectName = sourceModel.subjectName;
- if ([NSString isEmptyString:sourceModel.subjectName]) {
- self.subjectView.hidden = YES;
- }
- else {
- self.subjectLabel.text = subjectName;
- self.subjectView.hidden = NO;
- }
-
-
-
-
-
- if ([NSString isEmptyString:sourceModel.tenantGroupName]) {
- self.userNameTop.constant = 21.0f;
- self.tenantName.hidden = YES;
- }
- else {
- self.userNameTop.constant = 9.0f;
- self.tenantName.hidden = NO;
- self.tenantName.text = sourceModel.tenantGroupName;
- }
-
- }
- - (IBAction)clickAction:(UITapGestureRecognizer *)sender {
- NSInteger index = sender.view.tag;
-
- if (self.callback) {
- self.callback(index);
- }
- }
- - (void)configFunctionView {
- [self.functionScrollView removeAllSubViews];
-
- CGFloat width = (KPortraitWidth - 26) / MAX_FUNCROWCOUNT;
- for (NSInteger index = 0; index < self.imageArray.count; index++) {
- TenantMineFunctionView *functionButton = [TenantMineFunctionView shareInstance];
- NSNumber *tagValue = self.tagArray[index];
- NSInteger viewTag = [tagValue intValue];
- MJWeakSelf;
- [functionButton configWithSource:self.imageArray[index] title:self.titleArray[index] functionType:viewTag callback:^(NSInteger tagIndex) {
- if (weakSelf.callback) {
- weakSelf.callback(tagIndex);
- }
- }];
- functionButton.frame = CGRectMake(width * index, 0, width, 74);
- [self.functionScrollView addSubview:functionButton];
- }
- }
- - (void)setHasCustomService:(BOOL)hasCustomService {
- _hasCustomService = hasCustomService;
- if (hasCustomService) {
- self.customServiceView.hidden = NO;
- self.customServiceHeight.constant = 58.0f;
- self.bottomLine.hidden = NO;
- }
- else {
- self.customServiceView.hidden = YES;
- self.customServiceHeight.constant = 0.0f;
- self.bottomLine.hidden = YES;
- }
- }
- - (CGFloat)getViewHeight {
- return 275 + 12 + 130 + 12 + 58 * 5 + self.customServiceHeight.constant;
- }
- - (TYPageControl *)pageControl {
- if (!_pageControl) {
- _pageControl = [[TYPageControl alloc] init];
- _pageControl.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
- _pageControl.pageIndicatorSpaing = 4.0f;
- _pageControl.frame = CGRectMake(0, 60, (KPortraitWidth - 26), 12);
- _pageControl.currentPageIndicatorTintColor = INS_THEMECOLOR;
- _pageControl.pageIndicatorTintColor = HexRGB(0xd8d8d8);
- _pageControl.pageIndicatorSize = CGSizeMake(4, 4);
- _pageControl.currentPageIndicatorSize = CGSizeMake(12, 4);
- _pageControl.numberOfPages = 2;
- }
- return _pageControl;
- }
- - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
- if (scrollView == self.functionScrollView) {
- NSInteger index = (NSInteger)(scrollView.contentOffset.x / (KPortraitWidth - 26));
-
- [UIView animateWithDuration:0.3f animations:^{
- [self.pageControl setCurrentPage:index animate:YES];
- }];
- }
- }
- - (NSMutableArray *)imageArray {
- if (!_imageArray) {
- _imageArray = [NSMutableArray arrayWithArray:@[@"insititution_mine_music",@"insititution_mine_eveluate",@"insititution_mine_order",@"insititution_mine_rank",@"insititution_mine_code",@"tenant_mine_musicProduct"]];
- }
- return _imageArray;
- }
- - (NSMutableArray *)titleArray {
- if (!_titleArray) {
- _titleArray = [NSMutableArray arrayWithArray:@[@"我的曲库",@"练习统计",@"订单信息",@"排行榜",@"激活码",@"我的作品"]];
- }
- return _titleArray;
- }
- - (NSMutableArray *)tagArray {
- if (!_tagArray) {
- _tagArray = [NSMutableArray arrayWithArray:@[@(INSMINETYPE_MUSIC),@(INSMINETYPE_TRAIN),@(INSMINETYPE_ORDER),@(INSMINETYPE_RANK),@(INSMINETYPE_CODE),@(INSMINETYPE_WORKS)]];
- }
- return _tagArray;
- }
- - (UIScrollView *)functionScrollView {
- if (!_functionScrollView) {
- _functionScrollView = [[UIScrollView alloc] initWithFrame:CGRectZero];
- _functionScrollView.backgroundColor = [UIColor clearColor];
- _functionScrollView.pagingEnabled = YES;
- _functionScrollView.showsHorizontalScrollIndicator = NO;
- _functionScrollView.showsVerticalScrollIndicator = NO;
- _functionScrollView.delegate = self;
- }
- return _functionScrollView;
- }
- @end
|