簡體   English   中英

滾動視圖轉到視圖2時如何更改文本標簽?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM