我已经搜索了一遍又一遍的教程,但它们都不是我想要的。我试过苹果的样品,但它只是颜色,我不知道如何让它看起来。所有我正在寻找的是一个屏幕,将页面显示时,页面控件。每次滚动查看页面时,我都希望它显示完全不同的视图。不是不同的文本或图像,而是不同的视图。很像iPhone或ESPN Scorecenter应用程序的主屏幕。请帮帮我!谢谢。
发布于 2013-01-09 08:04:30
我创建了这个通用的解决方案,因为示例发现太复杂了,这对我来说是可读的,代码应该是不言而喻的。
- (IBAction)changePage:(id)sender {
_pageControlUsed = YES;
CGFloat pageWidth = _scrollView.contentSize.width /_pageControl.numberOfPages;
CGFloat x = _pageControl.currentPage * pageWidth;
[_scrollView scrollRectToVisible:CGRectMake(x, 0, pageWidth, _scrollView.frame.size.height) animated:YES];
}
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {
_pageControlUsed = NO;
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
if (!_pageControlUsed)
_pageControl.currentPage = lround(_scrollView.contentOffset.x /
(_scrollView.contentSize.width / _pageControl.numberOfPages));
}
发布于 2014-02-06 20:53:43
这与@ReneDohan answer的作用相同,不需要变量来存储状态
- (IBAction)changePage:(id)sender {
CGFloat x = self.pageControl.currentPage * self.scrollView.frame.size.width;
[self.scrollView setContentOffset:CGPointMake(x, 0) animated:YES];
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView.isDragging || scrollView.isDecelerating){
self.pageControl.currentPage = lround(self.scrollView.contentOffset.x / (self.scrollView.contentSize.width / self.pageControl.numberOfPages));
}
}
发布于 2012-05-11 20:19:26
试试这个框架:https://github.com/AdrianFlorian/AFImageViewer,使用页面控件在滚动视图中显示图像,以指示当前页面。
我还没有添加文档,但是如果你克隆这个项目,你可以看到示例。
您可以很容易地:-只需提供一组UIImage (图像urls)即可在单独的线程中从internet下载图像-给它一个urls对象数组-实现一个委托并自己管理每个页面的图像
https://stackoverflow.com/questions/3533047
复制