[英]How to change text label when scroll view goes to view 2?
我正在選擇一個具有3個水平滾動級別的級別-滾動控制三個視圖“視圖1”,“視圖2”和“視圖3”,我需要給用戶一個幻覺,我在每個視圖上放置了3個按鈕視圖,並在UIview的每一側帶有一個2個標簽的半個按鈕,一個寫“ lev”,另一個寫“ el 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 {
}
怎么做?
//實現UIScrollview Delegate方法
-(void)scrollViewDidScroll:(UIScrollView *)sender
{
CGFloat pageWidth = yourScrollView.frame.size.width;
int currentPage = floor((yourScrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
if (currentPage != featureVenPageControll.currentPage)
{
[_elone setText:[NSString stringWithFormat:@"Level 2"]];
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.