iOS新手引导页的实现,源码。

复制代码
 1 /*1.在Main.storyboard中找到,ScrollView和PageControl并添加到ViewController中。
 2 2.在ScrollView中添加ImageView,新手引导页有几个图片就添加几个,然后设置ImageView的image,就是准备好的图片。
 3 3.要设置好ScrollViewscroll View中的Left和View中的Width,使其等于图片的大小,还有就是图片大小的起始位置,第一张为(00),第二张的起始位置应该是(屏幕的宽度,0),以此类推。
 4 4.添加PageControl,这个的起始位置要手动的设置。
 5 5.设置同步*/
 6 //设置UIPageControl跟随UIScrollView的变化而变化
 7 -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
 8     _pc1.currentPage = scrollView.contentOffset.x / 424;
 9 }
10 //要使UIScrollView跟随UIPageControl变化的话,必须加监听,要写一个方法
11 -(void)changeScrollView:(UIPageControl *)uip1
12 {
13      [_sv1 setContentOffset:CGPointMake(424 * uip1.currentPage, 0) animated:YES];
14 }
15 
16 源码:
17 
18 #import "ViewController.h"
19 
20 @interface ViewController ()
21 @property (weak, nonatomic) IBOutlet UIScrollView *sv1;
22 @property (weak, nonatomic) IBOutlet UIPageControl *pc1;
23 
24 @end
25 
26 @implementation ViewController
27 
28 - (void)viewDidLoad {
29     [super viewDidLoad];
30     //必须手动设置内容视图的大小
31 ​    _sv1.contentSize = CGSizeMake(424*3,736);
32     //是否分页
33     _sv1.pagingEnabled = YES;
34     //滚动时是否显示水平滚动条
35     _sv1.showsHorizontalScrollIndicator = NO;
36     //滚动时是否显示垂直滚动条
37     _sv1.showsVerticalScrollIndicator=NO;
38     //为了设置UIPageControl,要用到代理方法判断是否移动
39     _sv1.delegate = self;
40     //要使UIScrollView跟随UIPageControl变化的话,必须加监听,要写一个方法
41     [_pc1 addTarget:self action:@selector(changeScrollView:) forControlEvents: UIControlEventTouchUpInside];
42 }
43 //设置UIPageControl跟随UIScrollView的变化而变化
44 -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
45     _pc1.currentPage = scrollView.contentOffset.x / 424;
46 }
47 //要使UIScrollView跟随UIPageControl变化的话,必须加监听,要写一个方法
48 -(void)changeScrollView:(UIPageControl *)uip1
49 {
50      [_sv1 setContentOffset:CGPointMake(424 * uip1.currentPage, 0) animated:YES];
51 }
52 - (void)didReceiveMemoryWarning {
53     [super didReceiveMemoryWarning];
54     // Dispose of any resources that can be recreated.
55 }
56 
57 @end
复制代码

 

posted @   会装系统的程序员  阅读(2124)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示