我使用下面的代碼,以創建一個UIScrollView
:更改視圖中的UIScrollView用的NSTimer
UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
scroll.pagingEnabled = YES;
NSInteger numberOfViews = 3;
for (int i = 0; i < numberOfViews; i++) {
CGFloat yOrigin = i * self.view.frame.size.width;
UIView *awesomeView = [[UIView alloc] initWithFrame:CGRectMake(yOrigin, 0, self.view.frame.size.width, self.view.frame.size.height)];
awesomeView.backgroundColor = [UIColor colorWithRed:0.5/i green:0.5 blue:0.5 alpha:1];
[scroll addSubview:awesomeView];
}
scroll.contentSize = CGSizeMake(self.view.frame.size.width * numberOfViews, self.view.frame.size.height);
[self.view addSubview:scroll];
的問題是:如何實現以更改頁面每4秒NSTimer
?
[NSTimer scheduledTimerWithTimeInterval:4.0f
target:self
selector:@selector(updateCounter:)
userInfo:nil
repeats:YES];
我在努力編寫updateCounter方法。請幫助
- (void)updateCounter:(NSTimer *)theTimer {
NSInteger numberOfViews = 3;
int i = 0; i++;
if (i < numberOfViews) {
yOrigin = i * self.view.frame.size.width;
[scroll scrollRectToVisible:CGRectMake(yOrigin, 0, self.view.frame.size.width, self.view.frame.size.height) animated:YES];
}
return; }
OK,所以這段代碼,從視圖1至圖2NSTimer
的變化,但它停止,它在接下來的4秒後不會更改爲圖3。我想要做的是從查看1到查看 2,4秒後,再到查看3,4秒後等等。我想擁有儘可能多的視圖,因爲我需要。
我認爲它是因爲每次調用updateCounter時都會重新初始化i(i = 0)。嘗試讓計數器成爲實例變量,並在我超出頁面數時重置/倒計數。 – chourobin
糟糕,你不應該有updateCount內的循環。定時器每4秒發射一次就是你的循環。 – chourobin