iOS之滚动视图UIScrollView


iOS之滚动视图:UIScrollView

UIScrollview

UIScrollView是可以滚动的view,UIView不能滚动,子类UIScrollView拓展了滚动和缩放的功能,UIScrollView是所有滚动视图的基类,UITableView和UITextView等视图都是继承该类,经常应用于相册,新闻头条。

滚动:当内容大小 大于 frame.size的时候才可以滚动!!!

滚动

1,创建

UIScrollView *scrollView = [[UIScrollView alloc]
initWithFrame:CGRectMake(50, 50, 300, 300)];

2,设置属性代理

scrollView.delegate = self;

3,定义内容区域大小,决定是否能够滑动,大于ScrollView的size才可以滑动

scrollView.contentSize = CGSizeMake(300 * 3 , 300);

4,内容偏移量

scrollView.contentOffset = CGPointMake(600, 0);// 内容偏移量 相当于往右移动300
可简单理解为第一次打开显示scrollview的区域

5,给scrollView添加子视图

UIImageView *iconImage = [[UIImageView alloc]
initWithFrame:CGRectMake(300,0,300,300)];
iconImage.image = [UIImage imageNamed:"..."];
[scrollView addSubViews:iconImage];

6,其他常用属性设置

scrollView.scrollEnabled = YES;//是否允许滑动,默认是YES
scrollView.pagingEnabled = YES;//整屏滚动,默认是NO
scrollView.showsHorizontalScrollIndicator = NO;
//是否显示水平滚动条,默认是YES
scrollView.bounces = NO;//默认是yes,设置成no关闭边界回弹

7,第2步给滚动scrollView设置了代理必须遵守协议UIScrollViewDelegate

@interface RootViewController () <UIScrollViewDelegate>

8, 重写协议里面的相关方法

(1)一旦滚动立即触发(偏移量发生改变)

- (void)scrollViewDidScroll:(UIScrollView *)scrollView;

(2)滑动开始减速的时候触发

- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView

(3)滑动结束的时候触发,也即不再发生有偏移量改变的时候

- (void)scrollViewWillEndDecelerating:(UIScrollView *)scrollView;

(4)滑动动画结束的时候触发

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView;
缩放:必须设置代理,指定可以被缩放的视图

缩放

(1)创建之后设置代理

_scrollView = self;

(2)代理遵守UIScrollViewDelegate协议并实现必须实现的方法!!!

- (nullable UIView *)viewForZoomingInScrollView:
(UIScrollView *)scrollView   该方法必须重写并实现,指定能
够进行缩放的视图

(3)其他属性

最小缩放比例(必须指定)

_scrollView.minimumZoomScale

最大缩放比例(必须指定)

_scrollView.maximumZoomScale

(4)实现协议里面关于缩放的其他方法

完成缩放放大的时候触发

- (void)scrollViewDidZoom:(UIScrollView *)scrollView NS_AVAILABLE_IOS(3_2)

指定某个UIScrolView的子视图可以被放大缩小

- (UIView *)viewForZoomingInScrollView:
(UIScrollView *)scrollView//UIScrolView里面只允许一个子视图可以被缩放,若是想要多个子视图被缩放,可在UIScrolView添加多个子UIScrolView


你可能感兴趣的:(ios,移动开发,uiscrollview)