我正在做一个3级水平滚动的选择级别 - 滚动控制三个视图“视图1”“视图2”和“视图3”,我需要对用户造成幻想,我已经放置了3个按钮在每个视图和一半的按钮在每个面的UIview与2个标签一个写“lev”其他“el 2”...如何在滚动视图转到视图2时更改文本标签?
当用户移动到查看2我希望设置标签到“el 2”,并且一旦滚动已经在第2级上定位,我想让标签写上“el 1” - 这会产生错觉,并且速度太快以至于用户不会注意到。
继承人的代码: 此:
[_elone setText:[NSString stringWithFormat:@"Level 2"]];
但我不知道放在哪里, 我应该做一个出口,一个动作一个说法?
@interface PagerViewController()
@property (assign) BOOL pageControlUsed;
@property (assign) NSUInteger page;
@property (assign) BOOL rotating;
- (void)loadScrollViewWithPage:(int)page;
@end
@implementation PagerViewController
@synthesize scrollViewTwo;
@synthesize pageControlTwo;
@synthesize pageControlUsed = _pageControlUsed;
@synthesize page = _page;
@synthesize rotating = _rotating;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self.scrollViewTwo setPagingEnabled:YES];
[self.scrollViewTwo setScrollEnabled:YES];
[self.scrollViewTwo setShowsHorizontalScrollIndicator:NO];
[self.scrollViewTwo setShowsVerticalScrollIndicator:NO];
[self.scrollViewTwo setDelegate:self];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
for (NSUInteger i =0; i < [self.childViewControllers count]; i++) {
[self loadScrollViewWithPage:i];
}
self.pageControlTwo.currentPage = 0;
_page = 0;
[self.pageControlTwo setNumberOfPages:[self.childViewControllers count]];
UIViewController *viewController = [self.childViewControllers objectAtIndex:self.pageControlTwo.currentPage];
if (viewController.view.superview != nil) {
[viewController viewWillAppear:animated];
}
self.scrollViewTwo.contentSize = CGSizeMake(scrollViewTwo.frame.size.width * [self.childViewControllers count], scrollViewTwo.frame.size.height);
}
- (void)loadScrollViewWithPage:(int)page {
if (page < 0)
return;
if (page >= [self.childViewControllers count])
return;
// replace the placeholder if necessary
UIViewController *controller = [self.childViewControllers objectAtIndex:page];
if (controller == nil) {
return;
}
// add the controller's view to the scroll view
if (controller.view.superview == nil) {
CGRect frame = self.scrollViewTwo.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
controller.view.frame = frame;
[self.scrollViewTwo addSubview:controller.view];
}
}
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
_pageControlUsed = NO;
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
_pageControlUsed = NO;
}
- (IBAction) changePage :(id) sender {
}
这是如何完成的?
等待,我想我必须做的是延长标签,哎呀,再等下去!帮帮我?请输入 – Ricky
使此VC成为滚动视图的委托,并实现scrollViewDidScroll。在那里,您可以检查scrollView.contentOffset并将其与视图原点进行比较。 – danh
这里有一个有用的教程(查看下面的分页示例):http://www.raywenderlich.com/10518/how-to-use-uiscrollview-to-scroll-and-zoom-content –