类型:是UIView的子类
提供更大的展示内容的区域,与用户的交互方式就是使用手指的拨动
有时:可以设置超出显示范围的可视内容,然后通过设置,方便用户使用拖拽的手势,查看更大范围的内容显示,本质上提供了一个可滚动的容器
- 如何使用?
step1:创建scrollView的实例
step2:一定要设置scrollView的frame和contentSize的属性
step3:为滚动视图添加子视图,如果想在滚动视图中查看图片,添加imageView子视图,
step4:将sctollView添加到控制器的view中做子视图,如果想在滚动视图中查看文字,添加label性质的子视图
- 属性
frame:设置可视化区域的大小
contentSize:设置全部内容区域的大小
contentoffset:设置或查看当前显示的区域左顶点距离全部内容区域左顶点的x和y的距离(实际上是偏移量)
contentInset:内边距如:sv.contentInset = UIEdgeInsetsMake(50, 20, 0, 0);
一定要向scrollView内容添加子视图
其他配置属性
bounces:设置到达边缘是否弹跳
paginEnable:设置是否整页滚动(属性可以控制翻页效果)如:_sv.pagingEnabled = YES;
showsHorizontalScrollIndicator设置是否显示水平滚动提示
showsVerticalScrollIndicator:设置是否显示垂直滚动提示
滚动四张图片MyViewController.m
#import "MyViewController.h"
@interface MyViewController ()<UIScrollViewDelegate>
@property(nonatomic,strong)UIScrollView *sv;
@property(nonatomic,strong)UIPageControl *pageControl;
@end
@implementation MyViewController
-(UIPageControl *)pageControl
{
if(!_pageControl){
_pageControl = [[UIPageControl alloc]init];
_pageControl.frame = CGRectMake(0, self.view.frame.size.height-20-40, self.view.frame.size.width, 40);
_pageControl.numberOfPages = 4;
_pageControl.currentPage = 0;
//设置当前选中的颜色
[_pageControl setPageIndicatorTintColor:[UIColor redColor]];
//设置其他未选中的颜色
[_pageControl setPageIndicatorTintColor:[UIColor greenColor]];
[self.view addSubview:_pageControl];
_pageControl.enabled = NO;
}
return _pageControl;
}
-(UIButton*)cteateButton{
UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
button.backgroundColor = [UIColor grayColor];
[button setTitle:@"进入登陆" forState:UIControlStateNormal];
[button addTarget:self action:@selector(gotoLoginVC:) forControlEvents:UIControlEventTouchUpInside];
return button;
}
-(void)gotoLoginVC:(UIButton*)sender{
NSLog(@"跳转到登陆界面");
}
//懒加载
-(UIScrollView *)sv
{
if(!_sv)
{
_sv = [[UIScrollView alloc]init];
_sv.delegate = self;
_sv.frame = self.view.frame;
_sv.contentSize= CGSizeMake(self.view.frame.size.width * 4, self.view.frame.size.height);
for(NSInteger i = 0; i<4 ;i++)
{
UIImageView *iv = [[UIImageView alloc]initWithFrame:CGRectMake(self.view.frame.size.width * i, 0, self.view.frame.size.width, self.view.frame.size.height)];
NSString *imageName = [NSString stringWithFormat:@"timg%ld.jpg",i];
iv.image = [UIImage imageNamed:imageName];
[_sv addSubview:iv];
if(i == 3){//说明是最后一个 imageView
UIButton *button = [self cteateButton];
button.frame = CGRectMake((iv.frame.size.width-200)*0.5, 400, 200, 60);
[iv addSubview:button];
//imageView 默认是关闭用户交互的 所以它的子视图button也无法与用户交互
iv.userInteractionEnabled = YES;
}
}
//隐藏水平滚动条
_sv.showsVerticalScrollIndicator = NO;
//取消弹性效果
_sv.bounces = NO;
//设置整屏滑动 是针对 frame来说的
_sv.pagingEnabled = YES;
[self.view addSubview:_sv];
}
return _sv;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[self sv];
[self pageControl];
}
//实现代理方法
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
//round c 的四舍五入
NSInteger page = round(scrollView.contentOffset.x / self.view.frame.size.width);
self.pageControl.currentPage = page;
}
网友评论