UIKit - scrollView缩放、滚动
2015-11-13 21:41
453 查看
UIScrollView滚动
三大属性:
self.scrollView.pageEnabled = NO 是否分页;n只要将UIScrollView的pageEnabled属性设置为YES,UIScrollView会被分割成多个独立页面,里面的内容就能进行分页展示
contentSize 设置的是要展示的内容的大小 size(如果小于scrollView的frame将无法滚动)
contentInset 是在contentSize的基础上额外增加的滚动区域
//self.scrollView.contentInset = UIEdgeInsetsMake(上,左, 下,右)
设置scrollView的frame 是scrollView的可视范围
contentOffset 是scrollView 滚动的位置(相对于整个内容(contentSize)的左上角为原点 )
// 设置最大和最小的缩放比例
self.scollView.maximumZoomScale = 2.0;
self.scollView.minimumZoomScale = 0.2;
UIScrollViewDelegate 代理方法
//使用捏合手势的时候调用
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
//将要进行缩放的时候
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
//结束缩放时调用
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{ 只要一次拖拽没有结束,就不会再调用.一次拖拽,只会调用一次
NSLog(@"---开始拖拽-----");
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{ 只要是在滚动,就会一直调用整个方法
NSLog(@"----正在滚动----");
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{ 一次拖拽,只会调用一次
NSLog(@"-----已经结束拖拽-----“);
}
如果UIScrollView无法滚动,可能是以下原因:
没有设置contentSize
scrollEnabled = NO
没有接收到触摸事件:userInteractionEnabled = NO
没有取消autolayout功能(要想scrollView滚动,必须取消autolayout)
@property(nonatomic) BOOL bounces;
设置UIScrollView是否需要弹簧效果
@property(nonatomic,getter=isScrollEnabled) BOOL scrollEnabled;
设置UIScrollView是否能滚动
@property(nonatomic) BOOL showsHorizontalScrollIndicator;
是否显示水平滚动条
@property(nonatomic) BOOL showsVerticalScrollIndicator;
是否显示垂直滚动条
缩放实现步骤
1.设置UIScrollView的id<UISCrollViewDelegate> delegate代理对象
2.设置minimumZoomScale :缩小的最小比例
3.设置maximumZoomScale :放大的最大比例
4.让代理对象实现下面的方法,返回需要缩放的视图控件
- (UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView;
跟缩放相关的其他代理方法
缩放完毕的时候调用
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
正在缩放的时候调用
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
三大属性:
self.scrollView.pageEnabled = NO 是否分页;n只要将UIScrollView的pageEnabled属性设置为YES,UIScrollView会被分割成多个独立页面,里面的内容就能进行分页展示
contentSize 设置的是要展示的内容的大小 size(如果小于scrollView的frame将无法滚动)
contentInset 是在contentSize的基础上额外增加的滚动区域
//self.scrollView.contentInset = UIEdgeInsetsMake(上,左, 下,右)
设置scrollView的frame 是scrollView的可视范围
contentOffset 是scrollView 滚动的位置(相对于整个内容(contentSize)的左上角为原点 )
// 设置最大和最小的缩放比例
self.scollView.maximumZoomScale = 2.0;
self.scollView.minimumZoomScale = 0.2;
UIScrollViewDelegate 代理方法
//使用捏合手势的时候调用
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
//将要进行缩放的时候
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
//结束缩放时调用
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{ 只要一次拖拽没有结束,就不会再调用.一次拖拽,只会调用一次
NSLog(@"---开始拖拽-----");
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{ 只要是在滚动,就会一直调用整个方法
NSLog(@"----正在滚动----");
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{ 一次拖拽,只会调用一次
NSLog(@"-----已经结束拖拽-----“);
}
如果UIScrollView无法滚动,可能是以下原因:
没有设置contentSize
scrollEnabled = NO
没有接收到触摸事件:userInteractionEnabled = NO
没有取消autolayout功能(要想scrollView滚动,必须取消autolayout)
@property(nonatomic) BOOL bounces;
设置UIScrollView是否需要弹簧效果
@property(nonatomic,getter=isScrollEnabled) BOOL scrollEnabled;
设置UIScrollView是否能滚动
@property(nonatomic) BOOL showsHorizontalScrollIndicator;
是否显示水平滚动条
@property(nonatomic) BOOL showsVerticalScrollIndicator;
是否显示垂直滚动条
缩放实现步骤
1.设置UIScrollView的id<UISCrollViewDelegate> delegate代理对象
2.设置minimumZoomScale :缩小的最小比例
3.设置maximumZoomScale :放大的最大比例
4.让代理对象实现下面的方法,返回需要缩放的视图控件
- (UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView;
跟缩放相关的其他代理方法
缩放完毕的时候调用
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
正在缩放的时候调用
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
相关文章推荐
- android背景设置报错 <item> tag requires a 'drawable' attribute or child tag defining a drawable
- 关于UIView的autoresizingMask属性
- HDU 1711 Number Sequence
- 特征值和特征向量(Eigenvalues and Eigenvectors)
- 每天学一点easyui①
- iOS相机, 相册, 图片库 和 UIAlertController的使用
- UI第一节: UIView s和 UILabel
- NSOperationQueue与GCD的使用原则和场景
- iOS8 自定义UITabBar (使用popToViewController导致的UITabBarButton重叠的问题)
- easyui 动态添加列
- LeetCode_Range Sum Query - Immutable
- LeetCode_Range Sum Query 2D - Immutable
- easyui动态添加文本域
- UINavigationItem UINavigationBar分析
- [leetcode-304]Range Sum Query 2D - Immutable
- tableViewCell的不同高度创建
- UI第四天:事件处理
- 分别使用Jmeter/Loadrunner/SoapUI做Web Service接口测试的简单操作
- 问题:-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "BlueView" nib but the view outlet was not set.
- 111 AddressBookUI