将 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】:我建议在情节提要中使用自动布局。将UIImageView
和UIScrollView
之间的前导空格、顶部空格、尾部空格和底部空格设置为0(或在填充的情况下为正整数)应该可以解决问题。
【讨论】:
谢谢.. 使用 0 个空格并摆脱 CGRectMake 并使用 UIViewContentModeAspectFit..【参考方案2】:UIScrollView
被初始化为默认值:contentOffset = CGPointZero
。你需要计算出合适的偏移量并通过代码设置。
图片应该在左上角scrollView
,contentSize
是由图片大小决定的,是否允许滚动。
【讨论】:
你能指出我应该在哪里改变吗?我希望图像位于中心......但我的图像显示在滚动视图的左上角有点右......以上是关于将 UIImage 定位在 UIScrollView 的中心进行缩放的主要内容,如果未能解决你的问题,请参考以下文章
使用 Autolayout Xcode6 在 Universal Storyboard 中相对于 UIImage 定位 UILabel
无法使用 UIImagePickerController 定位图像