我的iOS学习历程 - UIScrollView和UIPageControl
2015-11-21 11:33
295 查看
今天学习的是UISCrollView,可以滑动的页面基本都是继承于它,轮播图实现源代码点击这里下载
把屏幕宽和高设置为宏定义#define kScreenHeight [UIScreen mainScreen].bounds.size.height #define kScreenWidth [UIScreen mainScreen].bounds.size.width
UIScrollView
最重要的就是偏移量的使用,偏移量可以联系起其中的每个页面1.初始化
UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:[UIScreen mainScreen].bounds];
2.设置显示内容区域(滑动的范围)
scrollView.contentSize = CGSizeMake(kScreenWidth, kScreenHeight);
3.设置滚动条
scrollView.showsVerticalScrollIndicator = NO; // 纵向 scrollView.showsHorizontalScrollIndicator = NO;// 横向
4.设置回弹效果(默认关闭,且要先打开总得才能设置水平和竖直的)
scrollView.bounces = YES; scrollView.alwaysBounceHorizontal = YES;// 水平 scrollView.alwaysBounceVertical = NO;// 竖直
5.设置缩放比列
scrollView.minimumZoomScale = 0.5; scrollView.maximumZoomScale = 2;
6.设置代理(要设置代理才能完成代理中的方法)
scrollView.delegate = self;
UIScrollView常用的方法:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { // NSLog(@"滑动时一直触发此方法"); } - (void)scrollViewDidZoom:(UIScrollView *)scrollView { NSLog(@"缩放时一直触发此方法"); // 缩放时 按中心点缩放 // 让imageView中心点 始终等于self.view中心点 UIImageView *imageView = scrollView.subviews[0]; imageView.center = self.view.center; } - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView { // 指定要缩放的视图 并且是scrollView的子视图 // 缩放需要写代理方法和设置比例 return scrollView.subviews[0]; } - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { NSLog(@"将要开始拖拽触发"); } - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset { NSLog(@"已经结束拖拽触发"); } - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView { NSLog(@"将要开始减速触发"); } - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { // 最终图片停止在这个方法 NSLog(@"已经结束减速触发"); } - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale { NSLog(@"缩放已经结束触发"); } - (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView { // 改变偏移量的动画结束后 会触发 NSLog(@"动画结束后触发"); }
UIPageControl
1.初始化UIPageControl *pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, kScreenHeight - 50, kScreenWidth, 50)];
2.设置一共有多少页(默认0)
pageControl.numberOfPages = 5;
3.设置当前显示第几页(默认从0开始)
pageControl.currentPage = 1;
4.设置选中和未选中颜色
pageControl.pageIndicatorTintColor = [UIColor greenColor]; pageControl.currentPageIndicatorTintColor = [UIColor yellowColor];
要添加点击事件来联系对应的页面
// 添加点击事件 [pageControl addTarget:self action:@selector(pageControlAction:) forControlEvents:(UIControlEventValueChanged)]; // 点击事件的实现 - (void)pageControlAction :(UIPageControl *)pageControl { NSLog(@"%ld",pageControl.currentPage); }
最后会上传一个两个控件的联系的使用,把大部分的方法实现,实现一个轮播图.源代码标题下载
相关文章推荐
- 我的iOS学习历程 - UIScrollView和UIPageControl
- Longest Increasing Subsequence
- 图片数组形成动画(UIImageView)
- UIButton控件
- php 数组 array_values () array_key()
- CBuilder 添加自定义工具:打开当前文件所在的文件夹
- ue4中读取excel导出的二进制流文件
- php 数组 array_intersect_key() array_unique()移除重复
- 推荐一个Arduino学习模拟器: 123D Circuites
- UITableView
- poj1458Common Subsequence(求两个字符串的最长公共子序列)
- 我的iOS学习历程 - UISlider(简单的设置一组图片动画)
- 我的iOS学习历程 - UISlider(简单的设置一组图片动画)
- 优先队列priority_queue用法详解
- UIViewController的生命周期
- 初探UiAutomator(三)
- UITableView 初探
- 获得AndroidManifest.xml文件中meta-data的value值工具类
- 我的iOS学习历程 - UISegmentedControl
- 我的iOS学习历程 - UISegmentedControl