• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 当我滚动图像时,页面控制当前页面不会改变

[复制链接]
菜鸟教程小白 发表于 2022-12-11 19:43:19 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

页面控件当前页面在我滚动图像时不会改变,但是当我单击页面控件时,它可以正常工作,更改图像也可以很好地滚动上面是我的代码 帮我找出错误并改正

   scrollViewImage.delegate = self;
 int x=0;
scrollViewImage.pagingEnabled=YES;
NSArray *image=[[NSArray alloc]initWithObjects"1.png",@"2.png",@"3.png",@"4.png", nil];

int totalImage = (int)image.count;
for (int i=0; i<image.count; i++)
{
    UIImageView *img=[[UIImageView alloc]initWithFrame:CGRectMake(x, 0,[[UIScreen mainScreen] bounds].size.width, 140)];
    img.image=[UIImage imageNamed:[image objectAtIndex:i]];
    x=x+[[UIScreen mainScreen] bounds].size.width;
    [scrollViewImage addSubview:img];
}

scrollViewImage.contentSize=CGSizeMake(x, 115);
scrollViewImage.contentOffset=CGPointMake(0, 0);


// page control
   pageController = [[UIPageControl alloc]initWithFrame:CGRectMake(0, 400, 320, 36)];

[pageController addTarget:self actionselector(pageChanged) forControlEvents:UIControlEventValueChanged];
UIPageControl *pageControl = [UIPageControl appearance];
pageControl.numberOfPages=totalImage;

pageControl.pageIndicatorTintColor = [UIColor whiteColor];
pageControl.currentPageIndicatorTintColor = [UIColor redColor];
pageControl.backgroundColor = [UIColor blackColor];
pageControl.layer.cornerRadius = 7.0;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
  }
- (void)viewDidUnload {

[super viewDidUnload];
}
- (IBAction)changePageid)sender {

UIPageControl *pager=sender;
int page = pager.currentPage;
CGRect frame = scrollViewImage.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
[scrollViewImage scrollRectToVisible:frame animated:YES];
}




- (void)scrollViewDidEndDeceleratingUIScrollView *)scrollView
{
CGFloat viewWidth = scrollViewImage.frame.size.width;

int pageNumber = floor((scrollViewImage.contentOffset.x - viewWidth/2) / viewWidth) +1;
   pageController.currentPage = pageNumber;
pageController.currentPageIndicatorTintColor = [UIColor redColor ];
[scrollViewImage setContentOffset: CGPointMake(scrollViewImage.contentOffset.x,0)];
}

- (void)pageChanged {

int pageNumber = pageController.currentPage;
CGRect frame = scrollViewImage.frame;
frame.origin.x = frame.size.width*pageNumber;
frame.origin.y=0;
[scrollViewImage scrollRectToVisible:frame animated:YES];
 }



Best Answer-推荐答案


尝试在下面添加这个方法

- (void)scrollViewDidScrollUIScrollView *)scrollView {
    CGFloat pageWidth = self.scrollView.frame.size.width; // you need to have a **iVar** with getter for scrollView
    float fractionalPage = self.scrollView.contentOffset.x / pageWidth;
    NSInteger page = lround(fractionalPage);
    self.pageControl.currentPage = page; // you need to have a **iVar** with getter for pageControl
}

关于ios - 当我滚动图像时,页面控制当前页面不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44125832/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap