ios 简单的网络图片轮训
来源:互联网 发布:mac好用的流程图软件 编辑:程序博客网 时间:2024/06/05 04:28
0.截图
1.使用
LJPhotoGroupView *_ljPhotoGroupView = [[LJPhotoGroupView alloc]initWithItem:self.ljUrlArray]; _ljPhotoGroupView.backgroundColor = [UIColor blackColor]; _ljPhotoGroupView.frame = CGRectMake(0, 0, kDEVICEWIDTH, kDEVICEHEIGHT); [_ljPhotoGroupView showHintView:self];
2.源码
#import "LJPhotoGroupView.h"#import "LJWebIDataManager.h"@interface LJPhotoGroupCellView()@property (nonatomic, strong) UIImageView *ljImageview;@end@implementation LJPhotoGroupCellView- (instancetype)initWithFrame:(CGRect)frame url:(NSString*)imageurl{ self = [super initWithFrame:frame]; if (self) { [self addSubview:self.ljImageview]; //这里大家可以换成自己的网络请求图片的方法 [[LJWebIDataManager sharedInstances]retrieveData:imageurl successBlock:^(NSData *netData, NSString *progressStr, BOOL isFinished) { //在主线程中刷新界面 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ UIImage *_ljImage = [UIImage imageWithData: netData scale:0.3]; @myWeakify(self); dispatch_async(dispatch_get_main_queue(), ^{ @myStrongify(self); self.ljImageview.image = _ljImage; }); }); }]; } return self;}- (UIImageView*)ljImageview{ if (!_ljImageview) { _ljImageview = UIImageView.new; _ljImageview.frame = CGRectMake(15, 0, kDEVICEWIDTH - 30, 130); _ljImageview.backgroundColor = [UIColor redColor]; UIGestureRecognizer *_tap = [[UIGestureRecognizer alloc]initWithTarget:self action:@selector(dismissHintView)]; [_ljImageview addGestureRecognizer:_tap]; } return _ljImageview;}@end@interface LJPhotoGroupView()<UIScrollViewDelegate>@property (nonatomic, strong) UIScrollView *ljScrollView;@property (nonatomic, strong) NSArray *ljItemArray;@property (nonatomic, strong) UIImageView *ljImageview;@property (nonatomic, strong) UIPageControl *ljPageControl;@end@implementation LJPhotoGroupView- (instancetype)initWithItem:(NSArray*)ljArray{ self = [super init]; if (self) { self.ljItemArray = [NSArray arrayWithArray:ljArray]; [self addSubview:self.ljScrollView]; [self addSubview:self.ljPageControl]; for (int i = 0; i < self.ljItemArray.count; i++) { //方法一:直接设置每个cell的X坐标// LJPhotoGroupCellView *_cell = [[LJPhotoGroupCellView alloc]initWithFrame:CGRectMake((kDEVICEWIDTH )*i, 0, kDEVICEWIDTH, 130) url:self.ljItemArray[i]]; //方法二:先不用考虑cell的X坐标,在下面设置X的坐标 LJPhotoGroupCellView *cell = [[LJPhotoGroupCellView alloc]initWithFrame:self.ljScrollView.bounds url:self.ljItemArray[i]]; UITapGestureRecognizer *_tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(dismissHintView)]; [cell addGestureRecognizer:_tap]; [self.ljScrollView addSubview:cell]; } //方法二:设置cell的X坐标 // 计算imageView的位置 [self.ljScrollView.subviews enumerateObjectsUsingBlock:^(LJPhotoGroupCellView *cell, NSUInteger idx, BOOL *stop) { // 调整x => origin => frame CGRect frame = cell.frame; frame.origin.x = idx * frame.size.width; cell.frame = frame; }]; self.ljPageControl.currentPage = 0; } return self;}- (UIScrollView*)ljScrollView{ if (!_ljScrollView) { _ljScrollView = UIScrollView.new; _ljScrollView.frame = CGRectMake(0, 250, kDEVICEWIDTH, 130); _ljScrollView.delegate = self; //_scrollView.scrollsToTop = NO; _ljScrollView.pagingEnabled = YES; _ljScrollView.contentSize = CGSizeMake(_ljScrollView.bounds.size.width * self.ljItemArray.count, 130); //_scrollView.alwaysBounceHorizontal = groupItems.count > 1; // _scrollView.showsHorizontalScrollIndicator = NO; //_scrollView.showsVerticalScrollIndicator = NO; //_scrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; //_scrollView.delaysContentTouches = NO; //_scrollView.canCancelContentTouches = YES; } return _ljScrollView;}- (UIPageControl *)ljPageControl{ if (_ljPageControl == nil) { // 分页控件,本质上和scrollView没有任何关系,是两个独立的控件 _ljPageControl = [[UIPageControl alloc] init]; // 总页数 _ljPageControl.numberOfPages = self.ljItemArray.count; CGSize size = [_ljPageControl sizeForNumberOfPages:self.ljItemArray.count]; _ljPageControl.bounds = CGRectMake(0, 0, size.width, size.height); _ljPageControl.center = CGPointMake(self.center.x, 380); // 设置颜色 _ljPageControl.pageIndicatorTintColor = [UIColor redColor]; //当前页面的颜色 _ljPageControl.currentPageIndicatorTintColor = [UIColor whiteColor]; [_ljPageControl addTarget:self action:@selector(pageChanged:) forControlEvents:UIControlEventValueChanged]; } return _ljPageControl;}// 分页控件的监听方法- (void)pageChanged:(UIPageControl *)page{ NSLog(@"%ld", (long)page.currentPage); // 根据页数,调整滚动视图中的图片位置 contentOffset self.scrollView.bounds.size.width CGFloat x = page.currentPage * (kDEVICEWIDTH); [self.ljScrollView setContentOffset:CGPointMake(x, 0) animated:YES];}- (UIImageView*)ljImageview{ if (!_ljImageview) { _ljImageview = UIImageView.new; _ljImageview.frame = CGRectMake(0, 0, kDEVICEWIDTH, kDEVICEHEIGHT); _ljImageview.backgroundColor = [UIColor redColor]; UIGestureRecognizer *_tap = [[UIGestureRecognizer alloc]initWithTarget:self action:@selector(dismissHintView)]; [_ljImageview addGestureRecognizer:_tap]; } return _ljImageview;}- (void)scrollViewDidScroll:(UIScrollView *)scrollView { //CGFloat floatPage = _scrollView.contentOffset.x / _scrollView.width; //NSInteger page = _scrollView.contentOffset.x / _scrollView.width;}- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{ if (!decelerate) { }}#pragma mark - ScrollView的代理方法// 滚动视图停下来,修改页面控件的小点(页数)- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ // 停下来的当前页数 NSLog(@"%@", NSStringFromCGPoint(scrollView.contentOffset)); // 计算页数 int page = scrollView.contentOffset.x / scrollView.bounds.size.width; self.ljPageControl.currentPage = page;}- (void)showHintView:(UIView*)view{ //[view addSubview:self]; [[UIApplication sharedApplication].delegate.window.rootViewController.view addSubview:self]; self.alpha = 0.0; [UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{ self.alpha = 1.0; } completion:^(BOOL finished) { }];}- (void)dismissHintView{ [UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{ self.alpha = 0.0; } completion:^(BOOL finished){ [self removeFromSuperview]; }];}@end
阅读全文
0 0
- ios 简单的网络图片轮训
- ios 简单的设置图片等比例缩放请求的网络图片
- ios 简单的设置图片等比例缩放请求的网络图片
- ios网络图片的加载
- TeamTalk--消息服务器的轮训
- ios 简单的图片动画
- 网络图片查看器的简单实现
- 简单banner加载网络上的图片
- Python 实现简单的网络抓取图片
- IOS获取网络图片的方法
- IOS 加载网络图片的方式对比
- ios请求网络图片简便的方法
- iOS获取网络图片的宽、高
- IOS获取网络图片的尺寸
- iOS 获取网络图片的大小
- iOS中网络图片的下载
- ios获取网络图片的尺寸
- iOS 获取网络图片的宽高
- A. Bear and Three Balls
- RabbitMQ消息追踪之Firehose
- LVS系列—10种调度算法简介
- 青蛙的约会 POJ
- 死磕算法导论(二)合并排序
- ios 简单的网络图片轮训
- Java基础知识4
- elasticsearch 分布式环境搭建
- java纯jdbc连接mysql数据库实现增删查改 | 黄乔国PHP
- 如何使用JSZip(How to use JSZip)
- windows环境下重定向运行失败的问题!
- Ruby & Rails & Bootstrap reference 参考必备
- 白门柳-刘斯奋有声小说
- 如何构建一套成熟的APP生产线