             // 先调整一下初次的 contentInset
             setConversaitonCollectionViewOriginalContentInset()
 
-            if indexOfSearchedMessage == nil {
+            if let indexOfSearchedMessage = indexOfSearchedMessage {
+                let index = indexOfSearchedMessage - displayedMessagesRange.location
+                let indexPath = NSIndexPath(forItem: index, inSection: Section.Message.rawValue)
+                conversationCollectionView.scrollToItemAtIndexPath(indexPath, atScrollPosition: .CenteredVertically, animated: false)
+
+            } else {
                 // 尽量滚到底部
                 tryScrollToBottom()
             }

import KeyboardMan
import Navi
import MonkeyKing

struct MessageNotification {
    static let MessageStateChanged = "MessageStateChangedNotification"

        view.tintAdjustmentMode = .Normal

        if let indexOfSearchedMessage = indexOfSearchedMessage {
            let fixedIndexOfSearchedMessage = max(0, indexOfSearchedMessage - Ruler.iPhoneVertical(5, 6, 8, 10).value)
            displayedMessagesRange = NSRange(location: fixedIndexOfSearchedMessage, length: messages.count - fixedIndexOfSearchedMessage)

        } else {
            if messages.count >= messagesBunchCount {
