-(void)addAllViews
{
UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:[UIScreen mainScreen].bounds];
self.scrollView = scrollView;
//要想可以缩放视图,需要设置最小和最大缩放比例。
scrollView.minimumZoomScale = 0.8;
scrollView.maximumZoomScale = 3;
[self addSubview:scrollView];
//加载图片
UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"pingmu.png"]];
imageView.frame = CGRectMake(0, 0, 1280, 1000);
self.imageView = imageView;
self.imageView.tag = 100;
[self.scrollView addSubview:imageView];
//设置内容尺寸,关键点:contenSize跟scrollView本身的大小。
scrollView.contentSize = imageView.frame.size;
// 设置偏移量
// scrollView.contentOffset = CGPointMake(100, 0);
//点击状态栏,是否回到顶部,默认是YES
scrollView.scrollsToTop = YES;
//设置是否整页滑动
scrollView.pagingEnabled = YES;
//是否开启边界回弹效果.就是能看到scrollView,默认是YES,只是限制手势上的滚动。
scrollView.bounces = NO;
//设置是否允许图片滚动,默认是是YES
scrollView.scrollEnabled = YES;
//如果contentSize < scrollView 的大小,设置alwaysBounceVertical 以及 alwaysBounceHorizontal 属性,也是可以滑动的。
imageView.frame = self.frame;
scrollView.alwaysBounceHorizontal = YES;
scrollView.alwaysBounceVertical = YES;
}
=================================================
- (void)viewDidLoad {
[super viewDidLoad];
#pragma mark ============= UIScrollView ==================
self.rootView.scrollView.delegate = self;
}
//实现协议方法
- (void)scrollViewDidScroll:(UIScrollView *)sender
{
NSLog(@"%@",sender);
}
//设置可以缩放的图片
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
//通过tag值,获取内部的图片,并返回。
return [scrollView viewWithTag:100];
}
//view是可以缩放的那个视图。
-(void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
{
//单独这样设置的话,放大的时候,就会因为contenSize的大小而舍弃掉某些内容。
// view.center = scrollView.center;
//由于缩放即是修改了缩放视图的大小,也修改了contentSize,所以不能单纯的使用。center。
//获取缩放视图的位置和大小
CGRect viewFrame = view.frame;
//获取scrollView的大小
CGSize scrollViewSize = scrollView.frame.size;
//如果内容视图的宽度,小于scrollView的宽度,需要进行计算,否则,设置为0.
if (viewFrame.size.width < scrollViewSize.width) {
viewFrame.origin.x = (scrollViewSize.width - viewFrame.size.width)/2;
}else
{
viewFrame.origin.x = 0;
}
//如果内容视图的高度,小于scrollView的宽度,需要进行计算,否则,设置为0.
if (viewFrame.size.height < scrollViewSize.height) {
viewFrame.origin.y = (scrollViewSize.height - viewFrame.size.height)/2;
}else
{
viewFrame.origin.y = 0;
}
//将计算好的值 赋给view。
view.frame = viewFrame;
}