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

时间:2015-08-29 20:31:23

标签: ios objective-c uiscrollview uiimageview

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

#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];

}

2 个答案:

答案 0 :(得分:2)

我建议在故事板中使用自动布局。将UIImageViewUIScrollView之间的前导空格,顶部空间,尾随空格和底部空间设置为0(或填充时为正整数)应该可以解决问题。

答案 1 :(得分:1)

UIScrollView初始化为默认值:contentOffset = CGPointZero
您需要计算适当的偏移并按代码设置。

图片应位于scrollView的左上角,contentSize由图片大小决定,以便滚动。