// // HomeHeaderView.m // redstar // // Created by admin on 15/10/26. // Copyright © 2015年 ZWF. All rights reserved. // #import "HomeHeaderView.h" #define ImageCount 5 @interface HomeHeaderView () @property (nonatomic,assign) BOOL isDragging; //是否正在拖动 @property (nonatomic,strong) NSTimer *timer; //设置动画 @end @implementation HomeHeaderView #pragma mark - init - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { self.backgroundColor = kMineBackGroundColor; [self setup]; } return self; } #pragma mark - Private Methods - (void)setup { _isDragging = NO; // 天气label self.weatherLabel.text = @"上海 ⛅️ 多云转晴 21-29℃"; CGFloat width = self.scrollView.frame.size.width; CGFloat height = self.scrollView.frame.size.height; _scrollView.contentSize = CGSizeMake(ImageCount * width, 0); for (int i = 0; i < ImageCount; i++) { UIImageView *imageView = [[UIImageView alloc] init]; CGFloat imageX = i * width; CGFloat imageY = 0.f; imageView.frame = CGRectMake(imageX, imageY, width, height); imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"0%d", i]]; imageView.userInteractionEnabled = YES; UITapGestureRecognizer *tapGR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGRClick:)]; [imageView addGestureRecognizer:tapGR]; [_scrollView addSubview:imageView]; } // 设置时钟动画 定时器 self.timer = [NSTimer scheduledTimerWithTimeInterval:1.5f target:self selector:@selector(update:) userInfo:nil repeats:YES]; // 将定时器添加到主线程 [[NSRunLoop mainRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes]; } - (void)update:(NSTimer *)timer{ //定时移动 if (_isDragging == YES) { return ; } CGPoint offSet = self.scrollView.contentOffset; if (offSet.x == 0) { offSet.x = _scrollView.frame.size.width; } else if (offSet.x <= (ImageCount - 2) * _scrollView.frame.size.width){ offSet.x +=_scrollView.frame.size.width; } else { offSet.x = 0; } [self.scrollView setContentOffset:offSet animated:YES]; } - (void)tapGRClick:(UITapGestureRecognizer *)sender { NSLog(@"轮播图点击···"); } #pragma mark - UIScrollView Delegate - (void)scrollViewDidScroll:(UIScrollView *)scrollView { } - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { _isDragging = YES; } // 停止滚动 - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { _isDragging = NO; } #pragma mark - lazy loading - (UIScrollView *)scrollView { if (!_scrollView) { _scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height)]; _scrollView.bounces = NO; _scrollView.pagingEnabled = YES; _scrollView.delegate = self; _scrollView.showsHorizontalScrollIndicator = NO; _scrollView.showsVerticalScrollIndicator = NO; [self addSubview:_scrollView]; } return _scrollView; } - (UILabel *)weatherLabel { if (!_weatherLabel) { _weatherLabel = [[UILabel alloc] init]; _weatherLabel.translatesAutoresizingMaskIntoConstraints = NO; _weatherLabel.textAlignment = NSTextAlignmentRight; _weatherLabel.textColor = [UIColor whiteColor]; _weatherLabel.font = [UIFont systemFontOfSize:15.0]; [_weatherLabel setShadowColor:[UIColor blackColor]]; [_weatherLabel setShadowOffset:CGSizeMake(1, 1)]; [self insertSubview:_weatherLabel aboveSubview:self.scrollView]; NSLayoutConstraint *weatherHeight = [NSLayoutConstraint constraintWithItem:_weatherLabel attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:35]; [_weatherLabel addConstraint:weatherHeight]; NSLayoutConstraint *weatherRight = [NSLayoutConstraint constraintWithItem:_weatherLabel attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeRight multiplier:1.0 constant:-10]; [self addConstraint:weatherRight]; NSLayoutConstraint *weatherBottom = [NSLayoutConstraint constraintWithItem:_weatherLabel attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0]; [self addConstraint:weatherBottom]; } return _weatherLabel; } @end