2009-06-07 74 views
1

如果有人使用iPhone的短信應用程序,那麼撰寫視圖就會有一個特殊的動畫。如何做iPhone的短信應用程序SPECIAL viewController轉移?

當你第一次按下撰寫時,會顯示一個模態視圖controlelr。然而,只要您按下發送,它就會切換到您的聊天視圖控制器。但這裏有一些奇怪的行爲:

1)keybaord保持不變。通常當你彈出並推送新的控制器時,你會失去你的鍵盤位置。

2)進一步的證據表明,沒有彈出/推動新控制器,因爲實際視圖沒有改變。只要按下發送,消息就會「滑動」到氣泡視圖。 3)然而,如果真的沒有彈出/推動控制器,你怎麼改變導航欄上的按鈕?左上角的按鈕也從正方形的「取消」按鈕更改爲箭頭狀的後退按鈕。

任何想法如何實現這個經驗?

回答

0

您可以在視圖控制器中更改導航欄的特徵。您也可以通過直接更改viewController.view來更改屏幕的外觀。在這個例子中,當用戶按下發送,你可以使用下面的代碼來改變導航欄:

UIBarButtonItem *back = [[UIBarButtonItem alloc] initWithTitle:[NSString stringWithFormat:@"Messages:(%i)", messageCount] style:UIBarButtonStylePlain target:nil action:nil]; 
self.navigationItem.backBarButtonItem = back; 
[back release]; 
UIBarButtonItem *edit = [[UIBarButtonItem alloc] initWithTitle:@"Edit" style:plain target:self action:@selector(editMessage)]; 
self.navigationItem.rightBarButtonItem = edit; 
[edit release] 

然後你實現editMessage:

- (void)editMessage { 
    //Go into edit mode, whatever that code looks like. 
} 

他們後來乾脆不叫[自我。 textField resignFirstResponder],所以鍵盤保持在那裏。您會注意到,如果您加載舊對話,視圖將使用屏幕底部的發送框加載,並且不會顯示任何鍵盤。這符合UITextField對象的標準行爲。

直接攻擊視圖在UIView的幫助文件中進行了解釋,可能會有點痛苦。老實說,我不確定他們是如何繪製這個漂亮的IM界面的,我會把它留給其他專家。

0

我實際上爲我的一個應用程序實現了一個非常類似的用戶界面。這是如何做到的:

主控件是一個UITableView。頂部「呼叫」和「添加到聯繫人」的兩個按鈕是表格視圖標題視圖。

每個單元格都來自8個不同的圖像。 - 每個角落一個。 - 一個伸展和填充左上角和右上角之間的差距。 - 拉伸並填充左上角和左下角之間的間隙的人。 - 一個伸展和填補右上角和右下角之間的差距。 - 一個伸展和填補中左和中右之間的差距。 - 一個伸展和填充左下角和右下角之間的空隙。

相關問題