将 UIImage 定位在 UIScrollView 的中心进行缩放

Posted

技术标签:

【中文标题】将 UIImage 定位在 UIScrollView 的中心进行缩放【英文标题】:Position UIImage at the center of UIScrollView for zooming 【发布时间】:2015-08-29 20:31:23 【问题描述】:

我正在尝试使用 UIScrollview 和 UIImageview 来缩放图像... UIscrollview 是 300 x 300 并位于故事板的中心。但是它可以工作...当视图加载时,图像位于左上角(不完全是)滚动视图..但是我希望它在视图加载时位于滚动视图的中心...有人可以提出任何建议吗??

#import "ViewController.h"
@interface ViewController ()<UIScrollViewDelegate>

@property (strong, nonatomic) IBOutlet UIScrollView *scrollview;
@property (strong,nonatomic) UIImageView *imageview;

@end

@implementation ViewController
@synthesize scrollview,imageview;


-(void)viewDidLoad 
[super viewDidLoad];


scrollview.delegate=self;

UIImage *image = [UIImage imageNamed:@"back.jpg"];
imageview = [[UIImageView alloc] initWithImage:image];

imageview.contentMode=UIViewContentModeCenter;
imageview.frame=CGRectMake(0,0,scrollview.frame.size.width,scrollview.frame.size.height);
imageview.userInteractionEnabled=YES;
[scrollview addSubview:imageview];
scrollview.contentSize=image.size;



-(void)viewWillAppear:(BOOL)animated


CGRect scrollviewframe=scrollview.frame;
CGFloat scaleWidth=scrollviewframe.size.width/scrollview.contentSize.width;
CGFloat scaleHeight=scrollviewframe.size.height/scrollview.contentSize.height;
CGFloat scaleMin= MIN(scaleWidth, scaleHeight);
scrollview.minimumZoomScale=scaleMin;
scrollview.maximumZoomScale=1;
scrollview.zoomScale=scaleMin;
[self centerScrollviewContents];


【问题讨论】:

【参考方案1】:

我建议在情节提要中使用自动布局。将UIImageViewUIScrollView 之间的前导空格、顶部空格、尾部空格和底部空格设置为0(或在填充的情况下为正整数)应该可以解决问题。

【讨论】:

谢谢.. 使用 0 个空格并摆脱 CGRectMake 并使用 UIViewContentModeAspectFit..【参考方案2】:

UIScrollView被初始化为默认值:contentOffset = CGPointZero。你需要计算出合适的偏移量并通过代码设置。 图片应该在左上角scrollViewcontentSize是由图片大小决定的,是否允许滚动。

【讨论】:

你能指出我应该在哪里改变吗?我希望图像位于中心......但我的图像显示在滚动视图的左上角有点右......

以上是关于将 UIImage 定位在 UIScrollView 的中心进行缩放的主要内容,如果未能解决你的问题,请参考以下文章

使用 Autolayout Xcode6 在 Universal Storyboard 中相对于 UIImage 定位 UILabel

CSS / CGRect 定位

无法使用 UIImagePickerController 定位图像

在 animateAlongsideTransition 块内的 UIImage 上进行交叉溶解

UIImage 在旋转时向右移动 - 中心点错误?

相对于情节提要中图像的特定点定位元素