ios开发基础--滚动视图(UIScrollView)

来源:互联网 发布:高科技专利 知乎 编辑:程序博客网 时间:2024/06/05 03:26

滚动视图学习笔记(UIScrollView)

苹果的官方文档:Scroll View Programming Guide

1、继承滚动视图的视图都可以具有滚动功能

如:UITableView     UITtextView

2、滚动视图基本属性使用

contentSize :滚动区域大小,如某图片大小,多个分页的大小总和。

contentOffset : 滚动的初始原点。

contentEdgeinsets : 偏移量(可以移动出边界多远,四边默认为0,)

pagingEnable : 支持分页(可以按分页形式滑动,布尔值)

bounce : 弹片功能(分页时最好取消,否则可能看得到父视图的底层图)


使用Swift练习Scroll视图的使用,对加载图片的滑动查看

代码截图:


使用Scrollview和PageContolview实现效果(Object-C)

首先在IB中拖入这两个视图(不能将页控制器拖入到滑动视图,他们应该是平等层级关系),

映射到对应的视图控制器中

记得需要把UIScrollViewDelegate(参考下面的代理介绍)加入,以方便滑动时,改变页控制控件的值。

#import "ViewController.h"@interface ViewController ()@property (weak, nonatomic) IBOutlet UIScrollView *scroll;@property (weak, nonatomic) IBOutlet UIPageControl *page;@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];     self.automaticallyAdjustsScrollViewInsets=NO;    self.scroll.backgroundColor = [UIColor greenColor];    self.scroll.contentInset =  UIEdgeInsetsMake(0, 0, 5, 10);    self.scroll.showsVerticalScrollIndicator = NO;//设置旁边显示条    self.scroll.showsHorizontalScrollIndicator = NO;//设置水平显示条    self.scroll.scrollEnabled=YES;    _scroll.pagingEnabled = YES;//支持分页,如果不设置,滑动是随意的。    self.scroll.bounces = NO;//弹簧效果(分页建议取消,可以避免由于滑动过度导致出现底层视图)    _scroll.delegate = self;    //准备好2个页    UIView *view1 = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 375, 298)];//注意这里的位置是相对与父视图ScrollView的位置,不是相对于屏幕。。。刚开始理解错啦    view1.backgroundColor = [UIColor orangeColor];    UIView *view2 = [[UIView alloc]initWithFrame:CGRectMake(375, 0, 375, 298)];    view2.backgroundColor = [UIColor yellowColor];    [_scroll addSubview:view1];    [_scroll addSubview:view2];    _scroll.contentSize = CGSizeMake(self.scroll.frame.size.width*2, 298);//等下试试大小(主要是宽度)可不可以改变    self.page.currentPage = 0;    self.page.numberOfPages = 2;//总用两页}- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}-(void) prepareTwoView{}#pragma ScrollViewDelegate//实现代理-(void)scrollViewDidScroll:(UIScrollView *)scrollView{    NSLog(@"完成滚动,观察是否改变");    //[learn]怎么计算当前页值  偏移的x值除以宽度,    int index = fabs(self.scroll.contentOffset.x)/scrollView.frame.size.width;    self.page.currentPage = index;}@end

效国图如下:


3、可以使用UIScrollView的代理实现捏合缩放

若要使用,当前视图应遵守UIScrollViewDelegate代理协议,并设置代理属性(self.scrollView.delegate=self)

详细实现见:

:宏创学院 » UIScrollView滚动视图:2-代理

4、【扩展】缩放图片位置如何显示在中间、缩放图片横竖屏效果最佳、实现双击缩放、UIScrollView的嵌套使用(相同方向,相反方向,交叉方向
地址链接
0 0
原创粉丝点击