UIScrollView的图片缩放(只加载一张图片的时候)
2015-12-18 13:57
531 查看
在苹果的官方文档中,必须实现下面两个代理方法
1、-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
2、-(void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
* 该方法是返回要进行缩放的view
*
* @param scrollView
当前的scrollview
*
* @return UIView
*/
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return
self.imageView;
}
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGSize totalSize = [UIScreen
mainScreen].bounds.size;
/*
设置图片的位置
是因为在图片放大后,x和y不会在0位,造成图片左边会空出一块
*/
CGSize imageSize =
self.imageView.frame.size;
CGRect imageRect =
self.imageView.frame;
imageRect.origin.x =
0;
imageRect.origin.y =
0;
[self.imageView
setFrame:imageRect];
//当图片的宽度大于界面的宽度,则设置scrollview的y偏移量,也就是让图片保持居中的位置
if (imageSize.height > totalSize.height) {
CGPoint offPoint = scrollView.contentOffset;
offPoint.y = (imageSize.height - totalSize.height) /
2;
[scrollView setContentOffset:offPoint];
}
}
/**
* 在缩放进行中,让图片的的中心点始终居中
*/
-(void)scrollViewDidZoom:(UIScrollView *)scrollView
{
CGSize totalSize = [UIScreen
mainScreen].bounds.size;
CGSize imageSize =
self.imageView.frame.size;
CGRect imageRect =
self.imageView.frame;
if (imageSize.width < totalSize.width) {
imageRect.origin.x = totalSize.width /
2;
imageRect.origin.y = totalSize.height /
2;
[self.imageView
setCenter:CGPointMake(imageRect.origin.x, imageRect.origin.y)];
}
}
/**
* 当缩放完成后的处理
*
* @param scrollView scrollView
* @param view
当前缩放的view,我这边是imageView,那这里就是imageView
* @param scale
缩放比例
*/
-(void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
{
NSLog(@"缩放结束");
}
1、-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
2、-(void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
在下面的代码中除了图片的缩放外,还让图片在缩放中保持居中。
/*** 该方法是返回要进行缩放的view
*
* @param scrollView
当前的scrollview
*
* @return UIView
*/
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return
self.imageView;
}
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGSize totalSize = [UIScreen
mainScreen].bounds.size;
/*
设置图片的位置
是因为在图片放大后,x和y不会在0位,造成图片左边会空出一块
*/
CGSize imageSize =
self.imageView.frame.size;
CGRect imageRect =
self.imageView.frame;
imageRect.origin.x =
0;
imageRect.origin.y =
0;
[self.imageView
setFrame:imageRect];
//当图片的宽度大于界面的宽度,则设置scrollview的y偏移量,也就是让图片保持居中的位置
if (imageSize.height > totalSize.height) {
CGPoint offPoint = scrollView.contentOffset;
offPoint.y = (imageSize.height - totalSize.height) /
2;
[scrollView setContentOffset:offPoint];
}
}
/**
* 在缩放进行中,让图片的的中心点始终居中
*/
-(void)scrollViewDidZoom:(UIScrollView *)scrollView
{
CGSize totalSize = [UIScreen
mainScreen].bounds.size;
CGSize imageSize =
self.imageView.frame.size;
CGRect imageRect =
self.imageView.frame;
if (imageSize.width < totalSize.width) {
imageRect.origin.x = totalSize.width /
2;
imageRect.origin.y = totalSize.height /
2;
[self.imageView
setCenter:CGPointMake(imageRect.origin.x, imageRect.origin.y)];
}
}
/**
* 当缩放完成后的处理
*
* @param scrollView scrollView
* @param view
当前缩放的view,我这边是imageView,那这里就是imageView
* @param scale
缩放比例
*/
-(void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
{
NSLog(@"缩放结束");
}
相关文章推荐
- iOS开发中使用UIScrollView实现图片轮播和点击加载
- 顶部可滚动小广告位 的封装 (UIScrollView+PageControl)
- ios7 中关于导航切换影响UIScrollView的问题
- 两个UIScrollVIew能够同步滚动
- UIScrollview要加载大量数据的时候,考虑到内存的消耗问题,我们不可能全部加载完。
- UIScrollview 无缝循环滚动实现
- 解决 IOS的UIScrollView的自动布局
- UIScrollView无法滚动的问题
- cocos2d-x 一些有用的函数
- IOS UIscrollView 控件
- 关于NGUI中UITexture贴图自定义的shader文件在UISrollView中不报错的解决方案
- 缩放图片
- UIScrollView缩放
- UIScrollView的属性总结
- UIScrollView常用属性及回调方法
- IOS-UIScrollView滚动图片的简单实现
- UIScrollView的使用大全--contentsize,contentInset和contentInset
- 使用UINavigationController后导致UIScollView尺寸变化(转)
- UIScrollView里面实现视图的移动缩放,点击事件
- [无限互联] ios开发之框架HGPageScrollView浅谈