NewFeatureController.m 4.9 KB

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