2010-06-28 109 views
0

這是一個針對iPhone開發的問題,我是hopin,有人可以將我指向正確的方向,我應該如何去實現這一點。泡泡聊天+表情+ UITableViewCell

我正在嘗試編寫一個支持表情圖標/表情符號的聊天應用程序。笑臉/表情符號圖像的存儲位置可以在後面找到。我認爲很少有iPhone應用程序已經在做這個(即Skype + Ebuddy(?)),但不知道他們用什麼方法。

周圍搜索後,似乎有這樣做的(我認爲)的幾個方法:已經討論過

  • 泡泡聊天的風格。 UITableViewController自定義UITableViewCell。對於表情符號,可能需要進行大量的計算來確定每個表情符號在哪裏粘貼UIImageView
  • 使用UIWebView作爲整個「窗口」。將它看起來像泡泡聊天。對圖像笑臉佈置進行任何手動計算。

我不知道這兩種方法的性能如何,它可以得到多麼複雜等等,所以任何意見和指導都會有幫助。乾杯

回答

1

如果您使用自定義UITableViewCell,那麼我可能會實現drawRect:而不是添加標籤和圖像。一個人可能需要儘可能長時間地執行,但它會表現得更好。

雖然您必須確保所有內容都看起來正確,但UIWebView可能值得一試。我建議不要使用一個大的網頁,而只是在每個表格視圖單元中放入一個網頁視圖。

就我個人而言,我更喜歡第一種方法,測量和佈局文本並不太複雜,但我從來沒有成爲最終的HTML大師。

+0

我明白了。我想我必須更好地理解低水平apis的正確性,但肯定這會給我對顯示內容的最大控制。哦,男孩會有很多的字符串長度/寬度的計算。即如果符合x寬度,繪製字符串,否則包裝。如果有表情符號,它是否適合等等等 會看到它是如何去。感謝您的回覆隊友。 – Bundeeteddee 2010-06-29 03:02:30

0

我在製作自定義UITableViewCells,尤其是使用drawRect中,而不是添加標籤,圖像與@Eiko同意等

如果你使用一個UIWebView你會如何處理更新呢?每次發送新文本時都會重新加載一次?這似乎是一個問題的原因。一旦你得到一個長的談話重新加載整個UIWebView的內容將導致一些閃爍,這在我看來是不可接受的。同樣使用UIWebView將需要您在內存中擁有2個完整的每個對話副本。 1作爲後端數據,1作爲HTML。在使用UITableView的地方,你有後臺數據,並且只有足夠的數據將被複制,一次可以填滿1個屏幕。

+0

我不太確定如果整個視圖是UIWebView,我將如何處理它。我還不太熟悉UIWebView的一面。也許有一種方法可以即時注入html代碼?如果不是,那麼閃爍肯定會發生。 @eiko提到的另一種方式是每個需要表情圖標的聊天項目的UIWebview。如果您只對具有至少一個表情符號的聊天項目執行此操作,可能並不算太壞。否則,只是一個自定義的UITableViewCell。我對性能和內存使用率有很多擔憂。 – Bundeeteddee 2010-06-29 03:53:56

+0

他可以掛鉤的JavaScript和動態更改頁面。另一方面,UIWebView將讓用戶使用複製和粘貼,這是你不太可能在自定義繪製視圖上實現的 - 至少不會達到這種細節水平。 – Eiko 2010-06-29 07:47:03