minimumZoomScale // 缩⼩小的最⼩小⽐比例
maximumZoomScale //放⼤大的最⼤大⽐比例
zoomScale //设置变化⽐比例
zooming //判断是否正在进⾏行缩放反弹
bouncesZoom
要实现缩放,还需要实现delegate,指定缩放的视图是谁。
*/
/*
contentSize //定义内容区域⼤大⼩小,决定是否能够滑
contentOffset //视图左上⾓角距离坐标原点的偏移量
scrollsToTop //滑动到顶部(点状态条的时候) pagingEnabled //是否整屏翻动
bounces //边界是否回弹
scrollEnabled //是否能够滚动
showsHorizontalScrollIndicator //控制是否显⽰示⽔水平⽅方向的滚动条
showVerticalScrollIndicator //控制是否显⽰示垂直⽅方向的滚动条
alwaysBounceVertical //控制垂直⽅方向遇到边框是否反弹
alwaysBounceHorizontal //控制⽔水平⽅方向遇到边框是否反弹
*/
代理方法
#pragma mark scrollview代理方法实现
#pragma mark 缩放
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
// 缩放哪个视图
return [scrollView viewWithTag:kImageViewTag];
}
#pragma mark 缩放后中心点
#pragma mark 开始缩放
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
{
NSLog(@"%d %s",__LINE__, __FUNCTION__);
}
#pragma mark 结束缩放
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
NSLog(@"%d %s",__LINE__, __FUNCTION__);
}
#pragma mark 滚动就会触发
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog(@"%d %s",__LINE__, __FUNCTION__);
}
#pragma mark 停止滚动
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
NSLog(@"%d %s",__LINE__, __FUNCTION__);
}
/ 图片的缩放 中心点不变
// 屏幕大小
CGSize viewSize = self.view.frame.size;
// 内容视图大小
CGSize imageSize = scrollView.contentSize;
CGRect imageFrame = [scrollView viewWithTag:kImageViewTag].frame;
// 如果contentSize的宽度小于屏幕的宽度,则计算
if (imageSize.width < viewSize.width) {
imageFrame.origin.x = (viewSize.width - imageSize.width)/2;
} else {
imageFrame.origin.x = 0;
}
// 如果contentSize的宽度高于屏幕的宽度,则计算
if (imageSize.height < viewSize.height) {
imageFrame.origin.y = (viewSize.height - imageSize.height)/2;
} else {
imageFrame.origin.y = 0;
}
// 更新屏幕高度
[scrollView viewWithTag:kImageViewTag].frame = imageFrame;