NewFeatureController.m 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. //
  2. // NewFeatureController.h
  3. // BuguLive
  4. //
  5. // Created by xfg on 16/4/12.
  6. // Copyright © 2016年 xfg. All rights reserved.
  7. //
  8. #import "NewFeatureController.h"
  9. #import "BogoGuideFirstView.h"
  10. #define AdVCount 60 // AdVCount秒后客户未点击自动进入登入界面
  11. @interface NewFeatureController ()<UIScrollViewDelegate>
  12. @property (nonatomic, weak) UIPageControl *page;
  13. @property (nonatomic, weak) UIScrollView *scrollView;
  14. @property (assign, nonatomic) CGFloat imageW; // 图片宽度
  15. @property (assign, nonatomic) CGFloat imageH; // 图片高度
  16. @property (assign, nonatomic) NSInteger NewFeaturePhotosCount; // 告诉我显示图片的数量
  17. @property (copy, nonatomic) void(^myBlock)();
  18. @end
  19. @implementation NewFeatureController
  20. - (void)viewDidLoad
  21. {
  22. [super viewDidLoad];
  23. _count = 5;
  24. // AdVCount;
  25. _timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timeGo) userInfo:nil repeats:YES];
  26. //告诉控制器显示多少张图片
  27. if ([self.Datasourse respondsToSelector:@selector(NewFeatureControllerPhotosNumber)])
  28. {
  29. _NewFeaturePhotosCount=[self.Datasourse NewFeatureControllerPhotosNumber];
  30. }
  31. [self showNewFeaturePhotos];
  32. }
  33. #pragma mark 定时器
  34. - (void)timeGo
  35. {
  36. _count--;
  37. if (_count == 0)
  38. {
  39. [_timer invalidate];
  40. _timer = nil;
  41. // self.myBlock();
  42. }
  43. }
  44. #pragma mark 初始化UIScrollView和UIPageControl
  45. - (void)InitScrollViewAndPageControl
  46. {
  47. UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:[UIScreen mainScreen].bounds];
  48. scrollView.backgroundColor = kWhiteColor;
  49. //设置弹簧属性为NO;
  50. scrollView.bounces = NO;
  51. scrollView.showsHorizontalScrollIndicator = NO;
  52. _imageW = scrollView.frame.size.width;
  53. _imageH = scrollView.frame.size.height;
  54. //成为scrollView的代理
  55. scrollView.delegate=self;
  56. scrollView.pagingEnabled=YES;
  57. [self.view addSubview:scrollView];
  58. _scrollView = scrollView;
  59. //初始化UIPageControl
  60. UIPageControl *pageControl = [[UIPageControl alloc]init];
  61. CGPoint center = CGPointMake(scrollView.frame.size.width*0.5, scrollView.frame.size.height*0.85);
  62. pageControl.center = center;
  63. pageControl.pageIndicatorTintColor = RGB(198, 198, 198);
  64. pageControl.currentPageIndicatorTintColor = RGB(253, 98, 42);
  65. self.page = pageControl;
  66. [self.view addSubview:pageControl];
  67. }
  68. #pragma mark 显示图片
  69. - (void)showNewFeaturePhotos
  70. {
  71. [self InitScrollViewAndPageControl];
  72. //UIPageControl 可以不设置尺寸,但是要设置numberOfPages;
  73. _page.numberOfPages=self.self.NewFeaturePhotosCount;;
  74. //contentSize是scrollview可以滚动的区域
  75. _scrollView.contentSize=CGSizeMake(_scrollView.frame.size.width*self.NewFeaturePhotosCount, 0);
  76. for (int i=1; i<=self.NewFeaturePhotosCount; i++)
  77. {
  78. UIImageView *imageView;
  79. if ([self.Datasourse respondsToSelector:@selector(NewFeatureControllerImageViewIndex:)])
  80. {
  81. imageView = [self.Datasourse NewFeatureControllerImageViewIndex:i];
  82. imageView.frame = CGRectMake(_imageW*(i-1), 0, _imageW, _imageH);
  83. // BogoGuideFirstView *firstView = [[NSBundle mainBundle]loadNibNamed:@"BogoGuideFirstView"owner:self options:nil].lastObject;
  84. // [imageView addSubview:firstView];
  85. [_scrollView addSubview:imageView];
  86. }
  87. if(i == self.NewFeaturePhotosCount)
  88. {
  89. //如果是最后一张设置最后一张的图片
  90. [self setLastImageView:imageView];
  91. }
  92. }
  93. }
  94. /**
  95. 设置最后一张图片的立即体验
  96. @param imageView 新特性的最后一张图片
  97. */
  98. - (void)setLastImageView:(UIImageView *)imageView
  99. {
  100. // 开启交互功能
  101. imageView.userInteractionEnabled=YES;
  102. // 开始体验
  103. UIButton *startBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  104. startBtn.frame = (CGRect){{0.0},CGSizeMake(100, 35)};
  105. CGPoint center = CGPointMake(imageView.frame.size.width*0.5, ExpBtnBackY);
  106. startBtn.center = center;
  107. startBtn.layer.cornerRadius = kCornerRadius;
  108. startBtn.layer.borderWidth = kBorderWidth;
  109. startBtn.layer.borderColor = [[UIColor whiteColor] CGColor];
  110. [startBtn setBackgroundColor:ExpBtnBackGroundColor];
  111. startBtn.clipsToBounds = YES;
  112. [startBtn setTitle:ASLocalizedString(@"立即体验")forState:UIControlStateNormal];
  113. [startBtn addTarget:self action:@selector(startClick) forControlEvents:UIControlEventTouchUpInside];
  114. [imageView addSubview:startBtn];
  115. }
  116. #pragma mark 最后一页立即体验按钮点击执行此方法
  117. - (void)startClick
  118. {
  119. [self removeFromParentViewController];
  120. if ([self.delegate respondsToSelector:@selector(startAppClick)])
  121. {
  122. [self.delegate startAppClick];
  123. }
  124. else
  125. {
  126. self.myBlock();
  127. }
  128. }
  129. #pragma mark 监听scrollView的滚动
  130. - (void)scrollViewDidScroll:(UIScrollView *)scrollView
  131. {
  132. double width=[UIScreen mainScreen].bounds.size.width;
  133. CGPoint point=scrollView.contentOffset;
  134. self.page.currentPage=(int)point.x/width+0.5;
  135. }
  136. #pragma mark 设置开始进入APP的Block
  137. - (void)setStartAppBlock:(void(^)())blockHangler
  138. {
  139. self.myBlock=blockHangler;
  140. }
  141. @end