公司项目一期上线了,还有各种问题,最大的问题就是轮播图,需要重新写
今天捣腾了一下午
AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self setWindow:[[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]];
[self.window makeKeyWindow];
[self.window setRootViewController:[[MainViewController alloc] init]];
return YES;
}
//图片素材名称改得有规律,通过循环体来进行图片的添加
在MainViewController.m
#import "MainViewController.h"
@interface MainViewController ()<UIScrollViewDelegate>
//声明一个属性
@property (nonatomic, strong) UIScrollView *scrollView;
@property (nonatomic, strong) UIPageControl *pageControl;
@property (nonatomic, strong) NSTimer *timer;
@end
@implementation MainViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self.view setBackgroundColor:[UIColor whiteColor]];
CGFloat width = CGRectGetWidth(self.view.bounds);
self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 20, width, 420)];
[self.scrollView setBackgroundColor:[UIColor grayColor]];
[self.view addSubview:self.scrollView];
//设置滚动区域
[self.scrollView setContentSize:CGSizeMake(width * 5, 0)];
//设置分页
[self.scrollView setPagingEnabled:YES];
//隐藏水平滚动条
[self.scrollView setShowsHorizontalScrollIndicator:NO];
[self.scrollView setDelegate:self];
//设置内容视图
for (NSInteger i = 0; i < 5; i++) {
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(width * i, 0, width, 420)];
//图片素材名称改得有规律,通过循环体来进行图片的添加 %d进行占位 索引 i传过来
[imageView setImage:[UIImage imageNamed:[NSString stringWithFormat:@"ad_0%zd",i]]];
[self.scrollView addSubview:imageView];
}
self.pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(self.scrollView.frame)-20, width, 20)];
[self.pageControl setNumberOfPages:5];
[self.pageControl setPageIndicatorTintColor:[UIColor blackColor]];
[self.view addSubview:self.pageControl];
[self initTimer];
}
//封装timer
-(void)initTimer
{
if (!self.timer) {
self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(scrollImage) userInfo:nil repeats:YES];
//timer设置在哪个线程中
[[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
}
}
//定时器来动态控制滚动视图
-(void)scrollImage
{
NSInteger currentPage = self.pageControl.currentPage + 1;
if (currentPage >= 5) {
currentPage = 0;
}
//偏移量
[self.scrollView setContentOffset:CGPointMake(currentPage * CGRectGetWidth(self.scrollView.frame),0) animated:YES];
}
//pageControl随着scrollView一起滚动
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
[self.pageControl setCurrentPage:(NSInteger)(scrollView.contentOffset.x / CGRectGetWidth(scrollView.frame))];
}
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
if(self.timer)
{
//失效
[self.timer invalidate];
[self setTimer:nil];
}
}
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
[self initTimer];
}
告一段落
别问为什么是张予曦,没错我就是西瓜粉,喜欢这个女孩2年了,最近公布恋情了,别拦着我,我去哭一会。
这是Github地址,代码开源了
https://github.com/tb244313/RollingView11
有疑问的私信我.
所以!轮播图会了吗?
下一篇:讲java或者多选图,看心情!