ios – uiscrollview放大和缩小功能无法正常工作

ios – uiscrollview放大和缩小功能无法正常工作,第1张

概述我有一个uiscrollview,里面有一个uiimageview.我希望习惯能够放大图像,因为它是一个很大的图像. scrollview只需要垂直滚动而不是水平滚动. 在添加缩放效果之前,我有以下代码,它按照我的意愿工作, -(void)viewDidLoad{[scrollView setScrollEnabled:YES];[scrollView setContentSize:CGSi 我有一个uiscrollvIEw,里面有一个uiimagevIEw.我希望习惯能够放大图像,因为它是一个很大的图像. scrollvIEw只需要垂直滚动而不是水平滚动.

在添加缩放效果之前,我有以下代码,它按照我的意愿工作,

-(voID)vIEwDIDLoad{[scrollVIEw setScrollEnabled:YES];[scrollVIEw setContentSize:CGSizeMake(320,1690)];}

所以我做了一些研究,最后得到了以下代码来启用捏缩放,

-(voID)vIEwDIDLoad{scrollVIEw.scrollEnabled = YES;[scrollVIEw setContentSize:CGSizeMake(320,1690)];scrollVIEw.delegate = self;//    scrollVIEw.contentSize = instimage.frame.size;scrollVIEw.minimumZoomScale = scrollVIEw.frame.size.wIDth / instimage.frame.size.wIDth;scrollVIEw.maximumZoomScale = 2.0;[scrollVIEw setZoomScale:scrollVIEw.minimumZoomScale];[[NSRunLoop currentRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate distantFuture]]; } - (UIVIEw *)vIEwForZoomingInScrollVIEw:(UIScrollVIEw *)scrollVIEw {return instimage;} - (CGRect)centeredFrameForScrollVIEw:(UIScrollVIEw *)scroll andUIVIEw:(UIVIEw *)rVIEw {CGSize boundsSize = scroll.bounds.size;CGRect frametoCenter = rVIEw.frame;// center horizontallyif (frametoCenter.size.wIDth < boundsSize.wIDth) {    frametoCenter.origin.x = ((boundsSize.wIDth - frametoCenter.size.wIDth) / 2);}else {    frametoCenter.origin.x = 0; }return frametoCenter; } - (voID)scrollVIEwDIDZoom:(UIScrollVIEw *)scrollV {instimage.frame = [self centeredFrameForScrollVIEw:scrollV andUIVIEw:instimage];; }

现在我有以下问题,我无法弄清楚是什么问题,

>当在任何夹点之前刚刚加载视图时,scrollvIEw不会一直滚动到图像的末尾.
>当捏合放大时,它会向左和向右滚动并向上和向下滚动图像,但它仍然不会一直向下滚动到图像的末尾,但仍然比它最初在开始时所做的更多.
>当我缩小时,整个事情就停止了.你不能放大或缩小,它甚至不再滚动.完全锁定.

我做了一些研究,发现了以下帖子.
https://stackoverflow.com/a/6384834/1103257

但我不知道在哪里可以找到NSDefaultRunLoopMode,甚至不知道如何搜索它以确定是否可以解决它.

@R_502_6120@ 我终于明白了.此解决方案完美运行!

在你的.h文件中

@interface scrollVIEwController : UIVIEwController <uiscrollviewdelegate>{      float oldScale;      IBOutlet UIScrollVIEw *scrollVIEw;      IBOutlet UIImageVIEw  *image;}@end

然后将图像连接到uiimagevIEw,其中包含要放大和缩小的照片,并且位于滚动视图中.然后将scrollvIEw连接到界面上的uiscrollvIEw.

在.m文件中

@implementation scrollVIEwController-(voID)vIEwDIDLoad{[super vIEwDIDLoad];scrollVIEw.scrollEnabled = YES;scrollVIEw.minimumZoomScale=1.0;scrollVIEw.maximumZoomScale=4.0;[scrollVIEw setContentSize:CGSizeMake(320,1700)];scrollVIEw.delegate=self; } - (UIVIEw *)vIEwForZoomingInScrollVIEw:(UIScrollVIEw *)scrollVIEw {     return image; } - (voID)scrollVIEwDIDEndZooming:(UIScrollVIEw *)scrollV withVIEw:(UIVIEw *)vIEw atScale:(float)scale {     [scrollVIEw setContentSize:CGSizeMake(scale*320,scale*1700)]; }  @end

希望这可以帮助.

总结

以上是内存溢出为你收集整理的ios – uiscrollview放大和缩小功能无法正常工作全部内容,希望文章能够帮你解决ios – uiscrollview放大和缩小功能无法正常工作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1073505.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存