UIPageControll 在 UITableView 单元格中无法正常工作

Posted

技术标签:

【中文标题】UIPageControll 在 UITableView 单元格中无法正常工作【英文标题】:UIPageControll not properly working in UITableView cell 【发布时间】:2015-08-14 06:27:12 【问题描述】:

我正在UITableView 上实现一个滑动图像演示,并且为此我正在使用UIPageControl。当我在第一行滑动图像时,页面控件会正确更改,但是当我滑动第二行页面控件的图像时,它会从第一行的位置开始。

这是我的代码

-(void)seePhotosBtnClicked:(UIButton *)sender

    photoView.hidden = NO;


    CGPoint touchPoint = [sender convertPoint:CGPointZero toView:addressTable]; // maintable --> replace your tableview name
    NSIndexPath *clickedButtonIndexPath = [addressTable indexPathForRowAtPoint:touchPoint];
    NSString *areaToSearch = [[addressInfoArray valueForKey:@"IMAGEPATH"]objectAtIndex:clickedButtonIndexPath.row];


    NSArray *urlArray = [areaToSearch componentsSeparatedByString: @","];

    for (int i = 0; i<=2; i++)
    
        NSURL *imageURL = [NSURL URLWithString:[urlArray objectAtIndex:i]];
        NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
        UIImage *image = [UIImage imageWithData:imageData];

        CGRect frame;
        frame.origin.x =pagedScrollView.frame.size.width * i;
        frame.origin.y = 0;
        frame.size = pagedScrollView.frame.size;
        UIImageView *imgView=[[UIImageView alloc]initWithFrame:frame];

        imgView.image = image;
        [pagedScrollView addSubview:imgView];

    
     pagedScrollView.contentSize = CGSizeMake(pagedScrollView.frame.size.width * 3, pagedScrollView.frame.size.height);
        [pageControl addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged];

   

- (void)changePage:(id)sender



    // update the scroll view to the appropriate page
    CGRect frame;
    frame.origin.x = pagedScrollView.frame.size.width * pageControl.currentPage;
    frame.origin.y = 0;
    frame.size = pagedScrollView.frame.size;
    [pagedScrollView scrollRectToVisible:frame animated:YES];




【问题讨论】:

这段代码在哪里?就像在单元格或表格视图控制器中一样? @lukya 在表格视图控制器中 在您的seePhotosButtonClicked方法中,您需要使用scrollRectToVisible将其滚动回最左边的框架,并将页面控制页面设置为零。 【参考方案1】:

知道了,在停止滚动照片的地方添加此代码。

 pageControl.currentPage=0;
    pagedScrollView.contentSize = CGSizeMake(0, pagedScrollView.frame.size.height);

现在您的滚动视图将从第一个图像开始,页面控件从第一个刻度开始

【讨论】:

以上是关于UIPageControll 在 UITableView 单元格中无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionview 和单元格

UIViewController 中的 UISearchController

运行时出现零错误

tableView - didSelectRowAtIndexPath 未调用

在标签中滑动文本

TableView 仅在单击时显示内容