博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS开发学习笔记034-UIScrollView-xib实现分页
阅读量:4697 次
发布时间:2019-06-09

本文共 2411 字,大约阅读时间需要 8 分钟。

通过xib实现分页功能的封装

 1、首先实现xib

UIView 的尺寸为300*130,因为准备的图片为600*260。

 

 scrollView属性设置如下:

 

2、新建一个和xib同名的类

  2.1 类方法,返回xib对象

1 + (instancetype)pageScroll2 {3     // NSStringFromClass 将类名转换成字符串,xib文件名和类名一样4     return [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass(self) owner:nil options:nil] lastObject];5 }

 

  2.2 添加一个属性保存图片名称

  @property (strong, nonatomic) NSArray *imageNames; // 图片名称

  然后 重写set方法

1 - (void)setImageNames:(NSArray *)imageNames 2 { 3     _imageNames = imageNames; 4      5     // 添加图片 6     for (int i = 0 ; i < imageNames.count; i ++ ) 7     { 8         UIImageView *imageView = [[UIImageView alloc] init]; 9         imageView.image = [UIImage imageNamed:_imageNames[i]];10         [self.scrollView addSubview:imageView];11     }12     // 设置pageControl的页数13     self.pageControl.numberOfPages = _imageNames.count;14     // 设置scrollView是否在滚动到中间是自动滑向出现较多的那个页面15     self.scrollView.pagingEnabled = YES;16 }

 

  2.3、计算每个控件的frame

1 // layout ,计算控件的frame 2 - (void)layoutSubviews 3 { 4     [super layoutSubviews]; 5      6     // 设置scrollView的frame 7     self.scrollView.frame = self.bounds; 8     //view的高度和宽度 9     CGFloat viewW = self.scrollView.frame.size.width;10     CGFloat viewH = self.scrollView.frame.size.height;11     12     // view 的位置13     self.scrollView.contentSize = CGSizeMake(viewW * _imageNames.count, 0);14     // pageControl 的frame15     self.pageControl.frame = CGRectMake(viewW - 100, viewH - 20, 100, 20);16     17     // 计算图片的 frame18     for(int i = 0; i < _imageNames.count ; i ++)19     {20         UIImageView *imageView = self.scrollView.subviews[i];21         imageView.frame = CGRectMake(i * viewW, 0, viewW, viewH);22     }23 }

 

  2.4、设置pageControl的当前滚动页

1 // 代理方法2 - (void)scrollViewDidScroll:(UIScrollView *)scrollView3 {4     // 设置当前页的索引5     self.pageControl.currentPage = (int)(scrollView.contentOffset.x / scrollView.frame.size.width + 0.5);6 }

 

3、在控制器中加载xib文件

1 - (void)viewDidLoad { 2     [super viewDidLoad]; 3     // Do any additional setup after loading the view, typically from a nib. 4      5      6     // 加载ScrollView对象 7     SLQPageScroll *scroll = [SLQPageScroll pageScroll]; 8     scroll.frame = CGRectMake(25, 23, 300, 130); 9     scroll.imageNames = @[@"img_00",@"img_01",@"img_02",@"img_03"];10 11     scroll.backgroundColor = [UIColor redColor];12     [self.view addSubview:scroll];13     14 }

 

 

 

转载于:https://www.cnblogs.com/songliquan/p/4542779.html

你可能感兴趣的文章
洛谷 P1101 单词方阵
查看>>
Swift DispatchQueue
查看>>
C#和JAVA 访问修饰符
查看>>
小甲鱼OD学习第1讲
查看>>
HDU-1085 Holding Bin-Laden Captive-母函数
查看>>
php提示undefined index的几种解决方法
查看>>
LRJ
查看>>
Struts2环境搭建
查看>>
Linux: Check version info
查看>>
stl学习之测试stlen,cout等的运行速度
查看>>
魔戒三曲,黑暗散去;人皇加冕,光明归来
查看>>
Error和Exception
查看>>
Python和Singleton (单件)模式[转载]
查看>>
httpclient设置proxy与proxyselector
查看>>
IT常用单词
查看>>
拓扑排序
查看>>
NYOJ--32--SEARCH--组合数
查看>>
JMS
查看>>
gulpfile 压缩模板
查看>>
【34.14%】【BZOJ 3110】 [Zjoi2013]K大数查询
查看>>