国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

IOS 開發之網絡圖片輪播圖的實現

2020-02-19 15:45:25
字體:
來源:轉載
供稿:網友

我們在開發中經常需要開發廣告轉盤圖,我們只需要使用可以實現無限循環的功能即可,下面武林技術頻道小編整理了IOS 開發之網絡圖片輪播圖的實現,感興趣的朋友可以看下下文的介紹。

IOS 開發之網絡圖片輪播圖的實現

截圖

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 武林技術頻道小編整理的IOS 開發之網絡圖片輪播圖的實現,你覺得可以嗎?如果你有更好的操作方法,也可以在評論下留言哦!
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洛浦县| 昌都县| 镇宁| 双江| 鄂尔多斯市| 桃江县| 略阳县| 灵川县| 麦盖提县| 荔波县| 石狮市| 永川市| 出国| 雷波县| 前郭尔| 尼木县| 岳阳市| 金乡县| 青岛市| 偏关县| 和硕县| 辰溪县| 灵武市| 香河县| 仪陇县| 松桃| 顺义区| 长子县| 开原市| 胶南市| 公主岭市| 额尔古纳市| 焦作市| 龙岩市| 尚志市| 阿坝县| 色达县| 清远市| 奉节县| 孟州市| 青冈县|