UIScrollView 是负责滚动的视图。苹果最强大的地方就在于其良好的UI展示,和UE体验。如果不会很好的使用UIScrollView,就等于丧失了苹果一般的法力。 移动设备的屏幕大小是极其有限的,因此直接展示在用户眼前的内容也相当有限。当展示的内容较多,超出一个屏幕时,用户可通过滚动手势来查看屏幕以外的内容。
在缩放的时候,原理是操作被缩放控件的的transform数值。
属性名 | 作用 |
---|---|
contentSize | 设置UIScrollView的滚动范围 |
contentOffset | UIScrollView当前滚动的位置 |
contentInset | 增加滚动视图四周的增加滚动范围 |
bounces | 是否有弹簧效果,默认是开启的 |
scrollEnabled | 是否能滚动 |
showsHorizontalScrollIndicator | 是否显示水平方向的滚动条 |
showsVerticalScrollIndicator | 是否显示垂直方向的滚动条 |
indicatorStyle | 设定滚动条的样式 |
dragging | 是否正在被拖拽 |
tracking | 按住手指还没有开始拖动的时候值是YES,否则NO |
decelerating | 是否正在减速 |
zooming | 是否正在缩放 |
pagingEnabled | 滚动视图是否被分割成多个独立的页面 |
// 创建scrollView
UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:self.view.bounds];
// 创建UIImageView
UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"002"]];
_imageView = imageView;
// 把scrollVIew添加到View上
[self.view addSubview:scrollView];
// 把imageVIew添加到scrollview
[scrollView addSubview:imageView];
// 设置scrollView的滚动范围
scrollView.contentSize = imageView.bounds.size;
// 设置最小缩小比例
scrollView.minimumZoomScale = 0.2;
// 设置最大放大比例
scrollView.maximumZoomScale = 2;
// 设置代理
scrollView.delegate = self;
让代理对象返回需要缩放的视图控件
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
return self.imageView;
正在缩放时调用的方法
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
缩放完成时调用的方法
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView
-(void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated;
滚动到可见区域(靠近边缘-不会滚动到边缘外侧),如果当前区域完全可见,则什么也不做
如果指定的区域已经在可视范围,不会滚动 如果指定的区域完全超出contentSize的范围,不会滚动 如果指定的区域超越了当前可视区域,但没有超出contentSize的区域,可以滚动
-(void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated;
contentInset是用来设置内边距。和普通的内边距作用相反,不是让内容向里面缩进。是在不改变原有的contentSize基础上,让scrollView中的内容向四周多滚动一些。
contengInset 有一个重要属性: UIEdgeInsetsMake 用来描述内部控件最终可以弹回的位置属性,里面的值是上、左、下右
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有