Iphone 如何将图像缩小到滚动视图的中心位置
在我的应用程序中,我需要用cam捕捉图像,然后将其传递给imageView,它用作ScrollView的子视图 要求是图像必须有1/4大小的缩小和3倍大小的放大 现在的问题是,当我缩小这个图像时,图像缩小了,但它没有保持在中心位置。它根据手指的触碰来设置其位置。 没有双击缩放,也不需要 下面是代码Iphone 如何将图像缩小到滚动视图的中心位置,iphone,Iphone,在我的应用程序中,我需要用cam捕捉图像,然后将其传递给imageView,它用作ScrollView的子视图 要求是图像必须有1/4大小的缩小和3倍大小的放大 现在的问题是,当我缩小这个图像时,图像缩小了,但它没有保持在中心位置。它根据手指的触碰来设置其位置。 没有双击缩放,也不需要 下面是代码 - (void)viewDidLoad { [超级视图下载] UIImage* tmpImage = nil; tmpImage = [roomImage resizedImage:imageSc
- (void)viewDidLoad
{
[超级视图下载]
UIImage* tmpImage = nil;
tmpImage = [roomImage resizedImage:imageScrollView.frame.size interpolationQuality:0];
imageView = [[UIImageView alloc] initWithImage:tmpImage];
imageView.contentMode = UIViewContentModeScaleAspectFit;
imageScrollView.delegate = self;
imageScrollView.canCancelContentTouches = NO;
imageScrollView.minimumZoomScale = 0.25;
imageScrollView.maximumZoomScale = 3.00;
imageScrollView.clipsToBounds = YES;
[imageView sizeToFit];
[imageScrollView addSubview:imageView];
imageScrollView.contentSize = imageView.frame.size;
imageScrollView.contentMode = UIViewContentModeScaleAspectFit;
imageScrollView.contentOffset = CGPointMake(imageScrollView.frame.size.width/2, imageScrollView.frame.size.height/2);
imageScrollView.autoresizesSubviews = YES;
imageScrollView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin |
UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
CGFloat f,x,y;
if(tmpImage.size.height > tmpImage.size.width)
{
f = (imageScrollView.frame.size.height/tmpImage.size.height);
}
else
{
f = (imageScrollView.frame.size.width/tmpImage.size.width);
}
x = (imageScrollView.frame.size.width - tmpImage.size.width*f)/2;
y = (imageScrollView.frame.size.height - tmpImage.size.height*f)/2;
imageView.bounds = CGRectMake(x, y,tmpImage.size.width, tmpImage.size.height);
[imageView setNeedsDisplay];
[imageScrollView setZoomScale:f animated:YES];
[imageScrollView setNeedsDisplay];
jpgPath = nil;
[roomImage release];
roomImage = nil;
}
希望任何人都能帮我
提前感谢..,如果我理解正确,您可以对UIScrollView进行子类化,并在layoutSubviews方法中使用类似于以下的内容,以保持其内容集中:
-(void)layoutSubviews {
[super layoutSubviews];
CGSize boundsSize = self.bounds.size;
CGRect contentViewFrame = contentView.frame;
if (contentViewFrame.size.width < boundsSize.width) {
contentViewFrame.origin.x = (boundsSize.width - contentViewFrame.size.width) / 2;
} else {
contentViewFrame.origin.x = 0;
}
if (contentViewFrame.size.height < boundsSize.height) {
contentViewFrame.origin.y = (boundsSize.height - contentViewFrame.size.height) / 2;
} else {
contentViewFrame.origin.y = 0;
}
contentView.frame = contentViewFrame;
}
contentView变量是一个iVar,在您的情况下,它表示您希望在scrollView中显示的imageView。希望这有助于:-