ScrollView的基本用法丶代理方法
属性:
- (void)viewDidLoad {
[super viewDidLoad];
_scrollView.backgroundColor = [UIColor redColor];
//设置contentSize(必须设置)
_scrollView.contentSize = CGSizeMake(, );
//偏移量
_scrollView.contentOffset = CGPointMake(, );
//contentInset(在原有的基础上调整内容滚动区域的大小)
//_scrollView.contentInset = UIEdgeInsetsMake(-100, 0, 0, 0);
//锁定方向(当系统识别滚动方向的时候,会把另外一个方向锁定,如果识别不了,就不锁定方向)
_scrollView.directionalLockEnabled = YES;
//反弹效果(默认为yes)
_scrollView.bounces = YES;
//默认是no,假如是yes并且bounces是yes,甚至如果内容大小小于bounds的时候,允许垂直拖动
_scrollView.alwaysBounceVertical = YES;
//分页(默认no)
_scrollView.pagingEnabled = YES;
//滚动(默认yes允许滚动)
_scrollView.scrollEnabled = YES;
//滚动条
//showsHorizontalScrollIndicator默认yes 显示
_scrollView.showsHorizontalScrollIndicator = NO;
//滚动条滚动的范围(垂直滚动条滚动范围上下各缩小50)
_scrollView.scrollIndicatorInsets = UIEdgeInsetsMake(, , , );
//样式
_scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
// Do any additional setup after loading the view, typically from a nib.
}
- (void)viewDidLoad {
[super viewDidLoad];
//创建并添加scrollView
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(, , , )];
[self.view addSubview:scrollView];
scrollView.backgroundColor = [UIColor redColor];
//设置内容视图的大小
scrollView.contentSize = CGSizeMake(, );
//设置内容视图
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(, , , )];
imageView.image = [UIImage imageNamed:@"new_feature_1"];
[scrollView addSubview:imageView];
_imageView = imageView;
//设置代理
scrollView.delegate = self;
//[self performSelector:@selector(changeScrollViewContentOffSet:) withObject:scrollView afterDelay:3];
//设置缩放内容视图的缩放比例范围
scrollView.minimumZoomScale = 0.5;
scrollView.maximumZoomScale = 1.5;
//当缩放比例超出范围之后,是否有反弹效果(no:不会超出范围,yes:超出范围之后反弹)
scrollView.bouncesZoom = YES;
//属性设置滚动至顶部
//scrollView.scrollsToTop = YES;
// Do any additional setup after loading the view, typically from a nib.
}
-(void)changeScrollViewContentOffSet:(UIScrollView *)scrollView{
[scrollView setContentOffset:CGPointMake(, ) animated:YES];
}
#if 0
#pragma mark -UIScrollViewDelegate 滚动
//当scrollView滚动的时候,不停调用(可以监听scrollView的contentOffset)
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
//NSLog(@"%@",NSStringFromCGPoint(scrollView.contentOffset));
//NSLog(@"decelerating:%d",scrollView.decelerating);
//NSLog(@"dragging:%d",scrollView.dragging);
//NSLog(@"tracking:%d",scrollView.tracking);
NSLog(@"%s",__func__);
}
//开始拖动的时候调用
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
//NSLog(@"tracking:%d",scrollView.tracking);
NSLog(@"%s",__func__);
}
// called on finger up if the user dragged. velocity is in points/millisecond. targetContentOffset may be changed to adjust where the scroll view comes to rest
//将要结束拖动
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
// NSLog(@"velocity:%@",NSStringFromCGPoint(velocity));
// NSLog(@"targetContentOffset:%@",NSStringFromCGPoint(*targetContentOffset));
//强制设置scrollView的偏移量
//*targetContentOffset = CGPointMake(0, 200);
NSLog(@"%s",__func__);
}
// 已经结束拖动
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
//NSLog(@"dragging:%d",scrollView.dragging);
NSLog(@"%s",__func__);
}
//将要开始减速
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{
//NSLog(@"decelerating:%d",scrollView.decelerating);
NSLog(@"%s",__func__);
}
//减速完成(停止)
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
//NSLog(@"contentOffset:%@",NSStringFromCGPoint(scrollView.contentOffset));
NSLog(@"%s",__func__);
}
// called when setContentOffset/scrollRectVisible:animated: finishes. not called if not animating
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView{
NSLog(@"%s",__func__);
}
#endif
#pragma mark -UIScrollViewDelegate(缩放)
//指定缩放视图
- (nullable UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
NSLog(@"%s,zooming:%d",__func__,scrollView.zooming);
return _imageView;
}
//缩放之前调用
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(nullable UIView *)view {
NSLog(@"%s,zooming:%d",__func__,scrollView.zooming);
}
//完成缩放
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(nullable UIView *)view atScale:(CGFloat)scale{
NSLog(@"%s,zooming:%d",__func__,scrollView.zooming);
}
//缩放时调用
- (void)scrollViewDidZoom:(UIScrollView *)scrollView{
NSLog(@"%s,zooming:%d",__func__,scrollView.zooming);
}
#pragma mark -UIScrollViewDelegate(滚动至顶部)
//允许滚动至顶部
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView{
return YES;
}
//已经滚动至顶部
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView{
NSLog(@"加载新数据,刷新界面");
}
ScrollView的基本用法丶代理方法的更多相关文章
- UIScrollView的基本使用和一些常用代理方法
- (void)viewDidLoad { [super viewDidLoad]; scrollView = [[UIScrollView alloc] initWithFrame:CGRectMa ...
- iosUIScrollView以及UIPageControl的基本使用以及所有代理方法
//创建ScrollView的方法 -(void)createScrollView { UIScrollView *sv = [[UIScrollView alloc]initWithFrame:CG ...
- IOS UIScrollView常用代理方法
iOS UIScrollView代理方法有很多,从头文件中找出来学习一下 //只要滚动了就会触发 - (void)scrollViewDidScroll:(UIScrollView *)scrollV ...
- ios开发UI篇—UIScrollView属性及其代理方法
一.UIScrollView是什么? 1.UIScrollView是滚动的view,UIView本身不能滚动,子类UIScrollview拓展了滚动方面的功能. 2.UIScrollView是所有滚动 ...
- iOS--UIScrollView基本用法和代理方法
主要是为了记录下UIScrollView的代理方法吧 在帮信息学院的学长做东西的时候需要大量用到分块浏览,所以就涉及到很多的关于scrollview,所以也就有了这篇文章 - (void)view ...
- UIScrollView的代理方法(delegate)
// ViewController.m // 05-UIScrollView的代理(delegate) #import "ViewController.h" @interface ...
- 通读AFN②--AFN的上传和下载功能分析、SessionTask及相应的session代理方法的使用细节
这一部分主要研究AFN的上传和下载功能,中间涉及到各种NSURLSessionTask的一些创建的解析和HTTPSessionManager对RESTful风格的web应用的支持,同时会穿插一点NSU ...
- UITextField的代理方法:textField:shouldChangeCharactersInRange:replacementString
原文链接:http://www.cnblogs.com/zhanggui/p/6101813.html 这个我在开发的过程中用到的次数最多,因此这里就简单对其进行分析.先看看Command+点击 弹出 ...
- iOS开发之巧用Block和代理方法结合来传值
好久没写技术博客了,因为996的工作周期已经持续好几个月了.每天晚上回家都没有太多精力学习很多其他的东西,而且很多时候是接着完善工作的项目的模块开发.所以博客停歇了这么久,更新率也低了不少,今天补充一 ...
随机推荐
- STL学习笔记--算法
关于STL算法需要注意的是: (1) 所有STL算法被设计用来处理一个或多个迭代器区间.第一个区间通常以起点和终点表示,至于其他区间,多数情况下只需提供起点即可,其终点可自动以第一区间的元素数推导出来 ...
- Flask上下文管理及源码刨析
基本流程概述 - 与django相比是两种不同的实现方式. - django/tornado是通过传参数形式实现 - 而flask是通过上下文管理, 两种都可以实现,只不实现的方式不一样罢了. - 上 ...
- (27)Cocos2d-x 3.0 Json用法
Cocos2d-x 3.0 加入了rapidjson库用于json解析.位于external/json下. rapidjson 项目地址:http://code.google.com/p/rapidj ...
- 团队作业5-测试与发布(alpha阶段)
团队作业5-测试与发布(alpha阶段) 一.测试 请根据团队项目中软件的需求文档.功能说明.系统设计和测试计划,写出软件的测试过程和测试结果,并回答下述问题. 1. 在测试过程中总共发现了多少Bug ...
- CCPC-Wannafly Winter Camp Day5 (Div2, onsite)
Replay: Dup4: 时间复杂度算不对? 一点点思路不经过验证就激动的要死? 浪费自己一个小时还浪费别人一个小时? 对1e3不敏感? 1e3 * 1e3是多少? 模拟建边跑dp不写非要写个大模拟 ...
- sqlite的缺点和限制
随着查询变大变复杂,查询时间使得网络调用或者事务处理开销相形见绌, 这时一些大型的设计复杂的数据库开始发挥作用了. 虽然SQLite也能处理复杂的查询,但是它没有精密的优化器或者查询计划器. SQLi ...
- 解决margin重叠的问题
margin重叠有两种情况: 1.兄弟级的垂直块之间,margin这个属性上下边距,会发生重叠的情况 解决办法:float浮动或display:inline-block 2 .父子级的块之间,子级的上 ...
- Environment.NewLine
https://docs.microsoft.com/en-us/dotnet/api/system.environment.newline?view=netframework-4.7.2 https ...
- [笔记] SQL性能优化 - 常用语句(二)
1.查询CPU开销大的语句 total_worker_time/execution_count AS avg_cpu_cost, plan_handle, execution_count, ( , ( ...
- BZOJ 2226 【SPOJ 5971】 LCMSum
题目链接:LCMSum 这个题显然就是要我们推式子了……那么就来推一波: \begin{aligned}&\sum_{i=1}^n lcm(i,n) \\=&\sum_{i=1}^n\ ...