我正在寫這個應用程序,這是一個閃存卡應用程序,我想創建一個用戶界面,顯示不同的卡aka頁面,當用戶進行水平滑動時。 我想出了這個想法使用UIScrollView
,但問題是,我想滾動視圖顯示下一頁,只要刷卡發生,即使我打開它的分頁應該被刷到至少有一半的視圖大小觸發,這裏是不同的兩種不同的方法,我試過了:使用UIScrollView即時刷卡
首先,我禁止從UIScrollView
(使用scrolEnabled)滾動,所以它會通過滑動事件向上響應鏈,然後加右輕掃手勢識別器到相應的視圖。這種方法的問題是通常手勢識別器無法報告滑動事件。
我試過第二件事是用委託方法
- (void) scrollViewDidScroll:(UIScrollView *)scrollView{
static CGFloat lastScrollOffset;
static BOOL hasScrolled;
if (lastScrollOffset > theScrollView.contentOffset.x && !hasScrolled){
NSLog(@"left Swipe");
[theScrollView scrollRectToVisible:CGRectMake(0, 0, 320, 480) animated:YES];
if (theScrollView.contentOffset.x == 320)
hasScrolled = NO;
hasScrolled = YES;
}
if (lastScrollOffset < theScrollView.contentOffset.x && !hasScrolled){
NSLog(@"right Swipe");
[theScrollView scrollRectToVisible:CGRectMake(320, 0, 320, 480) animated:YES];
if (theScrollView.contentOffset.x == 0)
hasScrolled = NO;
hasScrolled = YES;
}
lastScrollOffset = theScrollView.contentOffset.x;
}
不能正常工作。
我注意到scrollRectToVisble
在發生另一次觸摸時被取消。我的假設有多準確?
有沒有更好的方法來解決這個問題?
感謝隊友:)即時通訊使用'CGAffineTransformMakeTranslation',它完美的作品,將會投票你的答案,只要我能夠。再次歡呼 – Ramuel 2011-05-05 04:10:38
沒問題 - 我發佈後發現這種方法的另一個優點是不必一次性創建所有卡片,只在需要時才創建它們 - 應該有助於保持應用程序的快速和內存使用率低: ) – deanWombourne 2011-05-05 08:47:56
猜想必須發佈到一個新的問題,但即時從我的意見加載從筆尖,下一張卡幾乎是相同的第一張卡,但有不同的問題,'CGAffineTransformMakeTranslation'的問題是它移動的觀點,然後我必須創建一個類似於其他視圖的視圖,所以當原始視圖移動時它將佔據它的位置。應該有更好的方法來解決這個問題? – Ramuel 2011-05-08 03:10:24