Iphone 是否以编程方式使用pagecontrol滚动查看?
我想以编程方式使用pagecontrol创建scrollView。我该怎么做?Iphone 是否以编程方式使用pagecontrol滚动查看?,iphone,Iphone,我想以编程方式使用pagecontrol创建scrollView。我该怎么做?#pragma mark- #pragma mark - #pragma mark loadGalleryView -(void) loadGalleryView{ galleryArr = [memberDic objectForKey:@"arrKey"]; if ([galleryArr count]%5 != 0) { noOfPages = ([galleryAr
#pragma mark-
#pragma mark -
#pragma mark loadGalleryView
-(void) loadGalleryView{
galleryArr = [memberDic objectForKey:@"arrKey"];
if ([galleryArr count]%5 != 0)
{
noOfPages = ([galleryArr count]/5)+1;
}
else
{
noOfPages = [galleryArr count]/5;
}
viewControllers = [[NSMutableArray alloc] init];
for (int i=0; i<noOfPages; i++)
{
[viewControllers addObject:[NSNull null]];
}
[galleryScrollView setPagingEnabled:TRUE];
[galleryScrollView setContentSize:CGSizeMake(self.view.frame.size.width* noOfPages,69.0f)];
[galleryScrollView setShowsHorizontalScrollIndicator:FALSE];
[galleryScrollView setShowsVerticalScrollIndicator:FALSE];
[galleryScrollView setScrollsToTop:FALSE];
[galleryScrollView setDelegate:self];
[pageControl setNumberOfPages:noOfPages];
[pageControl setCurrentPage:0];
[self loadScrollViewWithPage:0];
[self loadScrollViewWithPage:1];
}
//-----------------Load scroll View----------------------------------
-(void) loadScrollViewWithPage:(int) page{
if (page < 0)
{
return;
}
if (page >= noOfPages)
{
return;
}
GalleryViewController *givc = [viewControllers objectAtIndex:page];
if ((NSNull *)givc == [NSNull null])
{
givc = [[GalleryViewController alloc] initWithPageNumber:page];
givc.imageArr = [galleryArr retain];
[viewControllers replaceObjectAtIndex:page withObject:givc];
[givc release];
}
if (nil == givc.view.superview)
{
CGRect frame = self.view.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0.0f;
givc.view.frame = frame;
[galleryScrollView addSubview:givc.view];
}
}
- (void)scrollViewDidScroll:(UIScrollView *)sender {
// We don't want a "feedback loop" between the UIPageControl and the scroll delegate in
// which a scroll event generated from the user hitting the page control triggers updates from
// the delegate method. We use a boolean to disable the delegate logic when the page control is used.
// Switch the indicator when more than 50% of the previous/next page is visible
CGFloat pageWidth = galleryScrollView.frame.size.width;
int page = floor((galleryScrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
pageControl.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];
// A possible optimization would be to unload the views+controllers which are no longer visible
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
isPageControlUsed = NO;
}
in gallary View Controller in .m file
- (void)viewDidLoad {
[super viewDidLoad];
float x = 7.0f;
for (int i = (pageNumber*5); i<(pageNumber+1)*5; i++)
{
if (i<[imageArr count])
{
NSString *url = [imageArr objectAtIndex:i];
MyImageView *imgView = [[MyImageView alloc] initWithFrame:CGRectMake(x, 7.5f, 55.0f, 55.0f)];
[imgView addImageFrom:url];
[self.view addSubview:imgView];
[imgView release];
x = x+62.5f;
}
}
}
-(id)initWithPageNumber:(int) page{
if (self = [super initWithNibName:@"GalleryViewController" bundle:nil])
{
pageNumber = page;
}
return self;
}
#pragma标记loadGalleryView
-(无效)loadGalleryView{
galleryArr=[memberDic objectForKey:@“arrKey”];
如果([galleryArr计数]%5!=0)
{
noOfPages=([galleryArr count]/5)+1;
}
其他的
{
noOfPages=[galleryArr计数]/5;
}
ViewController=[[NSMutableArray alloc]init];
for(int i=0;i=noofpage)
{
返回;
}
GalleryViewController*givc=[ViewController对象索引:第页];
如果((NSNull*)givc==[NSNull])
{
givc=[[GalleryViewController alloc]initWithPageNumber:page];
givc.imageArr=[galleryArr-retain];
[viewControllers replaceObjectAtIndex:page with Object:givc];
[givc发布];
}
if(nil==givc.view.superview)
{
CGRect frame=self.view.frame;
frame.origin.x=frame.size.width*页;
frame.origin.y=0.0f;
givc.view.frame=框架;
[galleryScrollView添加子视图:givc.view];
}
}
-(无效)scrollViewDidScroll:(UIScrollView*)发送方{
//我们不希望UIPageControl和中的滚动委托之间出现“反馈循环”
//由用户点击页面控件生成的滚动事件触发的更新
//委托方法。当使用页控件时,我们使用布尔值禁用委托逻辑。
//当上一页/下一页显示超过50%时,切换指示器
CGFloat pageWidth=galleryScrollView.frame.size.width;
intpage=floor((galleryScrollView.contentOffset.x-pageWidth/2)/pageWidth)+1;
pageControl.currentPage=页面;
//加载可见页面及其两侧的页面(以避免用户开始滚动时闪烁)
[带页面的自加载滚动视图:第1页];
[带页面的自加载滚动视图:第页];
[self-loadScrollViewWithPage:page+1];
//一种可能的优化方法是卸载不再可见的视图+控制器
}
-(无效)ScrollViewDiEndDecelling:(UIScrollView*)scrollView{
isPageControlUsed=否;
}
在.m文件中的gallary视图控制器中
-(无效)viewDidLoad{
[超级视图下载];
浮动x=7.0f;
对于(int i=(页码*5);i#pragma标记-
#pragma标记loadGalleryView
-(无效)loadGalleryView{
galleryArr=[memberDic objectForKey:@“arrKey”];
如果([galleryArr计数]%5!=0)
{
noOfPages=([galleryArr count]/5)+1;
}
其他的
{
noOfPages=[galleryArr计数]/5;
}
ViewController=[[NSMutableArray alloc]init];
for(int i=0;i=noofpage)
{
返回;
}
GalleryViewController*givc=[ViewController对象索引:第页];
如果((NSNull*)givc==[NSNull])
{
givc=[[GalleryViewController alloc]initWithPageNumber:page];
givc.imageArr=[galleryArr-retain];
[viewControllers replaceObjectAtIndex:page with Object:givc];
[givc发布];
}
if(nil==givc.view.superview)
{
CGRect frame=self.view.frame;
frame.origin.x=frame.size.width*页;
frame.origin.y=0.0f;
givc.view.frame=框架;
[galleryScrollView添加子视图:givc.view];
}
}
-(无效)scrollViewDidScroll:(UIScrollView*)发送方{
//我们不希望UIPageControl和中的滚动委托之间出现“反馈循环”
//由用户点击页面控件生成的滚动事件触发的更新
//委托方法。当使用页控件时,我们使用布尔值禁用委托逻辑。
//当上一页/下一页显示超过50%时,切换指示器
CGFloat pageWidth=galleryScrollView.frame.size.width;
intpage=floor((galleryScrollView.contentOffset.x-pageWidth/2)/pageWidth)+1;
pageControl.currentPage=页面;
//加载可见页面及其两侧的页面(以避免用户开始滚动时闪烁)
[带页面的自加载滚动视图:第1页];
[带页面的自加载滚动视图:第页];
[self-loadScrollViewWithPage:page+1];
//一种可能的优化方法是卸载不再可见的视图+控制器
}
-(无效)ScrollViewDiEndDecelling:(UIScrollView*)scrollView{
isPageControlUsed=否;
}
在.m文件中的gallary视图控制器中
-(无效)viewDidLoad{
[超级视图下载];
浮动x=7.0f;
对于(int i=(页码*5);这是一个非常好的答案和代码。投票给我们我们不喜欢谷歌结果。我们喜欢你自己的答案。嘿,这是我的答案<我没有谷歌的副本,这是一个非常好的答案和代码。投票给我们我们不喜欢谷歌结果。我们喜欢你自己的答案。嘿,这是我的答案<我没有谷歌的副本