在添加缩放效果之前,我有以下代码,它按照我的意愿工作,
-(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放大和缩小功能无法正常工作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)