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

UIScrollView语法用法样例

2015-10-31 00:00 471 查看
#import "RootViewController.h"

#define kScreenSize [UIScreen mainScreen].bounds.size
#define kPrintDebug NSLog(@"%s",__func__)

@interface RootViewController ()<UIScrollViewDelegate>
{

UIScrollView *_scrollView;
}
@end

@implementation RootViewController
- (void)dealloc {
[_scrollView release];
[super dealloc];
}
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor lightGrayColor];
[self creatScrollView];
}
/*

- imageNamed:
- imageWithContentsOfFile:
区别:
1.- imageNamed: 加载图片
第一次 加载的时候 会把图片从app包内(手机磁盘) 加载到手机内存的缓存中,下次如果再加载相同的图片那么直接从缓存中加载,提高效率。但是缓存是有限的,app程序都要用到缓存,如果缓存低了那么直接影响app 运行效率。- imageNamed:方式加载的对象 是不释放的
应用场合:加载小图片 (几kb 几十kb),少量图片

2.- imageWithContentsOfFile: 加载图片
每次调用都会从app包内(磁盘) 中 获取,用完之后 也会自动释放。但是相对于- imageNamed:加载效率低一些

*/

- (void)creatScrollView {

//实例化一个滚动视图对象
//内容 是可以滚动的
_scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 64, kScreenSize.width, kScreenSize.height-90)];

//UIImage *image = [UIImage imageNamed: @"car4"];

//获取图片在app包内的路径
NSString *path = [[NSBundle mainBundle] pathForResource:@"girl" ofType:@"jpg"];
UIImage *image = [UIImage imageWithContentsOfFile:path];
//设置图片的真实大小
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, image.size.width, image.size.height)];
imageView.image = image;
//粘贴到滚动视图
[_scrollView addSubview:imageView];
[imageView release];

//背景颜色
_scrollView.backgroundColor = [UIColor redColor];

//1.滚动视图的内容一般要大于 滚动视图的范围
//2.设置 滚动视图的 滚动范围 (滚动范围 一般就是 内容的大小范围)
// 滚动区域范围 > 滚动视图的范围

//设置滚动视图的滚动区域范围(要想滚动必须设置滚动内容大小)
_scrollView.contentSize = imageView.bounds.size;

//设置回弹(默认可以回弹)
_scrollView.bounces = YES;

//显示或者隐藏 滚动条 默认显示
_scrollView.showsHorizontalScrollIndicator = NO;//水平
_scrollView.showsVerticalScrollIndicator = NO;//竖直
//设置 是否可以滚动  NO禁用滚动
//_scrollView.scrollEnabled = NO;

//设置方向锁
_scrollView.directionalLockEnabled = YES;//同时允许一个方向滚动

//设置 内容 偏移量(相对于 粘到到滚动视图的位置滚动偏移)

//如果偏移量CGPointMake(-50 ,-50) 内容会向 右 下偏移
//如果偏移量CGPointMake(50 ,50)   内容会向 左 上偏移

//_scrollView.contentOffset = CGPointMake(-50 ,-50);

//点击状态栏是否可以滚动到内容视图的顶部
_scrollView.scrollsToTop = YES;

//设置缩放(必须设置代理 实现协议的方法)
//实现- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
_scrollView.minimumZoomScale = 0.5;
_scrollView.maximumZoomScale = 2.0;

//设置代理
_scrollView.delegate = self;

//self.view当前视图是RootViewVontroller,
[self.view addSubview:_scrollView];
}
#pragma mark - UIScrollViewDelegate
//常用1
//当 缩放 滚动视图 的视图 通知代理 返回一个指定 内容视图
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
//返回需要缩放的视图地址
//当前滚动视图中只有 一个 视图
return scrollView.subviews[0];
}
//常用2
//手指 将要拖拽滚动视图的时候调用
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
kPrintDebug;
}
//常用3
//滚动视图滚动的时候调用 滚动的时候一直调用
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
//kPrintDebug;
//CGPoint point = scrollView.contentOffset;
//NSLog(@"偏移量:%@",NSStringFromCGPoint(point));
}
//常用4
//将要结束拖拽的时候调用
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
kPrintDebug;
}
//常用5
//已经结束拖拽调用
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
kPrintDebug;
}
//常用6
//将要开始 减速停止 的时候调用
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {
kPrintDebug;
}
//常用7
//已经 减速停止的时候调用
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
kPrintDebug;
}

//扩展
//将要开始 变形的时候调用
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view {
kPrintDebug;
}
//变形过程中一直调用
- (void)scrollViewDidZoom:(UIScrollView *)scrollView {
kPrintDebug;
}
//变形结束的时候调用
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale {
kPrintDebug;
}

//下面两个协议方法 有效 必须 设置滚动视图的_scrollView.scrollsToTop = YES;为yes

//_scrollView.scrollsToTop = YES;
//上面设置之后 可以通过 代理的协议的方法设置点击状态栏时候可以滚动顶部

//通过代理设置 点击状态栏是否可以滚动到顶部
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView {
kPrintDebug;
return YES;
}
//点击状态栏已经滚动到顶部
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView {
kPrintDebug;
}

- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  UIScrollView