2011-05-24 53 views
0

我正在學習Three20,希望自己實施Facebook iphone客戶端。 在facebook iphone客戶端的主屏幕中,搜索欄下方有幾個項目,我認爲它是滾動視圖和頁面控件的組合。當您在特定項目上點擊很長時間時,它會看起來像您在iPhone的應用程序圖標上做的一樣:您可以將項目拖動到新位置,甚至刪除添加的項目。 所以我的問題是:關於facebook實施的問題iphone客戶端

  1. 什麼樣的控件的項目是自定義TTButton?以及如何實現動畫,尤其是拖動?
  2. 當你點擊一個項目,一個新的視圖進來,如何實現動畫像陰影?

謝謝!

回答

0

實現你所說的主屏幕的Three20類是TTLauncherView

  1. 它包括TTLauncherButtons作爲其內部元件,直接從該UIControl派生(如UIButton也一樣)。如果您想實現自己(而不是簡單地使用)拖動動畫,您應該研究src/Three20UI/Sources/TTLauncherView.m中提供的源代碼,由於涉及許多方法,因此這裏解釋起來相當複雜。我建議從buttonTouchedDown:withEventstartDraggingButton:開始,並按照從那裏的流程。如果您對編輯模式動畫感興趣,請選擇wobble選擇器。

  2. 至於動畫當你選擇一個按鈕時,這不是特定於Three20。你可以學習他們如何在src/Three20UINavigator/Sources/TTBaseNavigationController.m中執行此操作,搜索pushViewController:animatedWithTransition;

這是代碼,供大家參考:

- (void)pushViewController: (UIViewController*)controller 
    animatedWithTransition: (UIViewAnimationTransition)transition { 
    [self pushViewController:controller animated:NO]; 

    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:TT_FLIP_TRANSITION_DURATION]; 
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationDidStopSelector:@selector(pushAnimationDidStop)]; 
    [UIView setAnimationTransition:transition forView:self.view cache:YES]; 
    [UIView commitAnimations]; 
} 

最終塊是一個負責的動畫效果。

+0

感謝您的快速響應!我會盡快嘗試。我可以問一下:你怎麼知道我剛剛在三二十中提到的示例項目? – scorpiozj 2011-05-24 12:54:39

+0

不客氣。我在我的兩個項目中使用了three20,你知道...... – sergio 2011-05-24 13:06:34

+0

TTLauncherView是我需要的!非常感謝 – scorpiozj 2011-05-24 13:07:31