您的位置:首页 > 产品设计 > UI/UE

我的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);
}


最后会上传一个两个控件的联系的使用,把大部分的方法实现,实现一个轮播图.源代码标题下载

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: