在 Iphone 中使用页面控制滑动图像
Posted
技术标签:
【中文标题】在 Iphone 中使用页面控制滑动图像【英文标题】:Swiping Images with Page Control in Iphone 【发布时间】:2012-10-25 04:36:43 【问题描述】:我正在尝试制作练习应用程序,我可以在其中使用页面控件滚动图像。我能够滚动图像并能够包含页面控件。但我面临的问题是我无法将两者联系起来。意思是说当我滚动图像时,页面控件不受影响,而当我更改页面控件时,图像的滚动不受影响。
我已经提到了这个:http://www.iosdevnotes.com/2011/03/uiscrollview-paging/ 用于带有页面控件的滚动。
Viewcontroller.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UIScrollViewDelegate>
UIScrollView *scrollView;
UIPageControl *pageControl;
BOOL pageControlBeingUsed;
@property (nonatomic, retain) IBOutlet UIScrollView *scrollView;
@property (nonatomic, retain) IBOutlet UIPageControl *pageControl;
- (IBAction)changePage;
@end
Viewcontroller.m
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize scrollView,pageControl;
- (void)scrollViewDidScroll:(UIScrollView *)sender
if (!pageControlBeingUsed)
// Switch the indicator when more than 50% of the previous/next page is visible
CGFloat pageWidth = self.scrollView.frame.size.width;
int page = floor((self.scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
self.pageControl.currentPage = page;
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
pageControlBeingUsed = NO;
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
pageControlBeingUsed = NO;
- (void)viewDidLoad
[super viewDidLoad];
NSArray *images = [[NSArray alloc] initWithObjects:[UIImage imageNamed:@"1.jpeg"],[UIImage imageNamed:@"2.jpeg"],[UIImage imageNamed:@"3.jpeg" ], nil];
self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * images.count, self.scrollView.frame.size.height);
for (int i = 0; i < images.count; i++)
CGRect frame;
frame.origin.x = self.scrollView.frame.size.width * i;
frame.origin.y = 0;
frame.size = self.scrollView.frame.size;
UIImageView* imgView = [[UIImageView alloc] init];
imgView.image = [images objectAtIndex:i];
imgView.frame = frame;
[scrollView addSubview:imgView];
self.pageControl.currentPage = 0;
self.pageControl.numberOfPages = images.count;
- (void)didReceiveMemoryWarning
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
- (void)viewDidUnload
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
self.scrollView = nil;
self.pageControl = nil;
- (IBAction)changePage
// update the scroll view to the appropriate page
CGRect frame;
frame.origin.x = self.scrollView.frame.size.width * self.pageControl.currentPage;
frame.origin.y = 0;
frame.size = self.scrollView.frame.size;
[self.scrollView scrollRectToVisible:frame animated:YES];
pageControlBeingUsed = YES;
@end
需要一些指导...谢谢..
【问题讨论】:
【参考方案1】:从这个教程学习了页面控制和scrollView,写的很清楚,希望对你有帮助http://www.raywenderlich.com/10518/how-to-use-uiscrollview-to-scroll-and-zoom-content
【讨论】:
我按照教程创建了新的练习应用程序,但它仍然无法正常工作...... ***.com/questions/13063303/…【参考方案2】:检查是否将滚动视图的代理设置为ViewController
您刚刚将 pageControlBeingUsed 设置为 YES 或 NO,并且您还没有在 ViewController 中的任何地方使用它
【讨论】:
在哪里使用它?可以告诉我在哪里使用它吗? 现在更改了代码...在scrollViewDidScroll函数中包含pageControlBeingUsed..仍然没有区别... 是否可以创建循环滑动?....如何使用上面的代码进行循环滑动......你有什么想法吗? @Singapore 你的意思是沿着圆形路径移动你的手指来达到上述目的以上是关于在 Iphone 中使用页面控制滑动图像的主要内容,如果未能解决你的问题,请参考以下文章
在 iphone 中使用 UIScrollView 滚动图像(第 2 部分)