将 UIImage 定位在 UIScrollView 的中心进行缩放
Position UIImage at the center of UIScrollView for zooming
我正在尝试使用 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];
}
我建议在故事板中使用自动布局。将 UIImageView
和 UIScrollView
之间的前导 space、顶部 space、尾随 space 和底部 space 设置为 0(或中的正整数填充的情况)应该可以解决问题。
UIScrollView
初始化为默认值:contentOffset = CGPointZero
。
需要计算出合适的偏移量,通过代码设置。
图片应该在scrollView
的左上角,contentSize
由图片大小决定是否允许滚动。
我正在尝试使用 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];
}
我建议在故事板中使用自动布局。将 UIImageView
和 UIScrollView
之间的前导 space、顶部 space、尾随 space 和底部 space 设置为 0(或中的正整数填充的情况)应该可以解决问题。
UIScrollView
初始化为默认值:contentOffset = CGPointZero
。
需要计算出合适的偏移量,通过代码设置。
图片应该在scrollView
的左上角,contentSize
由图片大小决定是否允许滚动。