// -----------------------------------------------------------------------------// loadScrollVIEwWithPage- (voID)loadScrollVIEwWithPage:(int)page { if ( page < 0 ) return; if ( page >= kNumberOfPages ) return;}// -----------------------------------------------------------------------------// scrollVIEwDIDScroll- (voID)scrollVIEwDIDScroll:(UIScrollVIEw *)sender { if ( pageControlUsed ) { // do nothing - the scroll was initiated from the page control,not the user dragging return; } // Switch the indicator when more than 50% of the prevIoUs/next page is visible CGfloat pageWIDth = mScrollVIEw.frame.size.wIDth; int page = floor((mScrollVIEw.contentOffset.x - pageWIDth / 2) / pageWIDth) + 1; mPageControl.currentPage = page; // load the visible page and the page on either sIDe of it (to avoID flashes when the user starts scrolling) [self loadScrollVIEwWithPage:page - 1]; [self loadScrollVIEwWithPage:page]; [self loadScrollVIEwWithPage:page + 1];}// -----------------------------------------------------------------------------// scrollVIEwWillBeginDragging// At the begin of scroll dragging,reset the boolean used when scrolls originate from the UIPageControl- (voID)scrollVIEwWillBeginDragging:(UIScrollVIEw *)scrollVIEw { pageControlUsed = NO; [mTimer invalIDate];}// ----------------------------------------------------------------// scrollVIEwDIDEndDecelerating// At the end of scroll animation,reset the boolean used when scrolls originate from the UIPageControl- (voID)scrollVIEwDIDEndDecelerating:(UIScrollVIEw *)scrollVIEw { pageControlUsed = NO;}- (ID)initWithNibname:(Nsstring *)nibnameOrNil bundle:(NSBundle *)nibBundleOrNil tag:(NSInteger)inTag noOfPoses:(NSInteger)inNoOfPoses imagename:(NSArray *)inImagenameArr{ self = [super initWithNibname:@"TIphonePosesDetailVIEw" bundle:nibBundleOrNil]; if (self) { mTag = inTag;// tag of the image taken from prevIoUs controller mNoOfPoses = inNoOfPoses; kNumberOfPages = mNoOfPoses; if ( inImagenameArr != nil ) { mimgnameArr = [inImagenameArr retain];// contains images } NSLog(@"Image Array%@",mimgnameArr); } return self;}// -----------------------------------------------------------------------------// vIEwDIDLoad- (voID)vIEwDIDLoad{ [super vIEwDIDLoad]; mScrollVIEw.delegate = self; mScrollVIEw.showsHorizontalScrollindicator = FALSE; [mScrollVIEw setContentSize:CGSizeMake(1000,464)]; [mScrollVIEw setFrame:CGRectMake(45,69,240,226)]; // Setting frame mStartPoint = CGPointMake(0,0); [mPrevimgVIEw setimage:[self getimageFromname:[mimgnameArr objectAtIndex:mTag]]]; [mPrevimgVIEw setFrame:CGRectMake(mStartPoint.x,mStartPoint.y,226)]; // a page is the wIDth of the scroll vIEw mScrollVIEw.pagingEnabled = YES; mScrollVIEw.contentSize = CGSizeMake(mScrollVIEw.frame.size.wIDth * kNumberOfPages,mScrollVIEw.frame.size.height); mScrollVIEw.showsHorizontalScrollindicator = NO; mScrollVIEw.showsverticalScrollindicator = NO; mScrollVIEw.scrollsTotop = NO; mPageControl.numberOfPages = kNumberOfPages; mPageControl.currentPage = 0; // pages are created on demand // load the visible page // load the page on either sIDe to avoID flashes when the user starts scrolling [self loadScrollVIEwWithPage:0]; [self loadScrollVIEwWithPage:1]; mTimer = [[NSTimer alloc] initWithFireDate:[NSDate dateWithTimeIntervalSinceNow:2] interval:2.0 target:self selector:@selector(scrollautomatically:) userInfo:nil repeats:YES]; [[NSRunLoop currentRunLoop] addTimer:mTimer forMode:NSDefaultRunLoopMode];}// -----------------------------------------------------------------------------// scrollautomatically- (voID)scrollautomatically:(ID)sender{ if ( mCurrentPage < [mPageControl numberOfPages] ) { mCurrentPage ++; mTag ++; [mPrevimgVIEw setimage:[self getimageFromname:[mimgnameArr objectAtIndex:mTag]]]; mStartPoint.x += 250 + mPrevimgVIEw.frame.size.wIDth; } else { mCurrentPage = 0; } [self loadScrollVIEwWithPage:mCurrentPage - 1]; [self loadScrollVIEwWithPage:mCurrentPage]; [self loadScrollVIEwWithPage:mCurrentPage + 1]; // update the scroll vIEw to the appropriate page CGRect frame = mScrollVIEw.frame; frame.origin.x = frame.size.wIDth * mCurrentPage; frame.origin.y = 0; [mScrollVIEw scrollRectToVisible:frame animated:YES];}解决方法 当您调用此方法时,通过动态修复其坐标来加载所有图像.您可以使用缓存加载图像,这将节省加载时间并可用 here
- (voID)loadScrollVIEwWithPage:(int)page { if ( page < 0 ) return; if ( page >= kNumberOfPages ) return;}
但只在加载视图时显示第一页
之后,ScrollVIEw委托方法将用于移动页面控件….
但是停止打电话给这些
[self loadScrollVIEwWithPage:page - 1]; [self loadScrollVIEwWithPage:page]; [self loadScrollVIEwWithPage:page + 1];
它会反复创建图像
总结以上是内存溢出为你收集整理的ios – 如何在pagecontrol的滚动视图中将图像应用于imageView.全部内容,希望文章能够帮你解决ios – 如何在pagecontrol的滚动视图中将图像应用于imageView.所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)