gpt4 book ai didi

ios - UIScrollView 缩放不能正常工作

转载 作者:行者123 更新时间:2023-11-29 02:27:02 25 4
gpt4 key购买 nike

每当我点击一张图片时,我都希望图片显示为具有缩放功能的大图。到目前为止,当我单击图像时,它会按照我希望的方式显示在 ScrollView 中。但是,我必须幸运才能正确放大。大多数时候,当我尝试缩放时,图像只是向下和向右移动,根本没有缩放。这是我的代码:

-(void) pictureButtonAction 
{
self.scrollImageView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];
self.scrollImageView.contentSize = self.fullImageView.image.size;
self.scrollImageView.delegate = self;
self.scrollImageView.clipsToBounds = YES;
self.scrollImageView.scrollEnabled = YES;
[self.scrollImageView setMaximumZoomScale:4.0f];
[self.scrollImageView setMinimumZoomScale:1.0f];
[self.view addSubview:self.scrollImageView];
[self.scrollImageView addSubview:fullImageView];
}

-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return self.fullImageView;
}

最佳答案

ImageViews 框架在缩放时发生变化,因此它向下移动。因此,每次缩放时都必须将 ImageView 集中。

你的 scrollviews contentsize 应该大于或等于你的图像大小,如果你的 fullImageView.image.size 小于你的 scrollviews bounds,那么设置你的 scrollviews contentSize 至少是 scrollviews bounds 的两倍。

在 scrollViewDidZoom 委托(delegate)方法中调用以下函数

-(void) centerScrollViewContents
{
CGSize boundsSize = self.scrollView.bounds.size;
CGRect contentsFrame = self.imageView.frame;

if (contentsFrame.size.width < boundsSize.width) {
contentsFrame.origin.x = (boundsSize.width - contentsFrame.size.width) / 2.0f;
} else {
contentsFrame.origin.x = 0.0f;
}

if (contentsFrame.size.height < boundsSize.height) {
contentsFrame.origin.y = (boundsSize.height - contentsFrame.size.height) / 2.0f;
} else {
contentsFrame.origin.y = 0.0f;
}

self.imageView.frame = contentsFrame;
}

试试这个,希望对你有帮助;快乐编码! :)

关于ios - UIScrollView 缩放不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27394655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com