2017-09-06 86 views
8

我有一個應用程序,它允許用戶發送消息給每個。該過程通過將發送的消息保存在本地SQLite數據庫中完成,同時實際將消息發送到數據庫並使用推送通知將消息發送到接收者的SQLite數據庫。設置我有工作正常。然而,我感到困惑的是如何爲用戶設置實際的交互式用戶界面(我正在使用XCode)。我覺得它應該是一個UITableView,每個表格單元代表一條消息。然而,用這種方法,我碰到了幾個要求:
可變TextView的尺寸
正如常規iOS消息,該TextView的大小必須是可變的,調整其大小,以適合所有文本的每封郵件中。我不知道如何做到這一點。我對如何一般不同的大小有一個大體的瞭解,但不知道如何根據該視圖中的文本動態地獲取它。
可變TextView的位置
同樣,正如常規iOS消息,TextView的需要偏移到右側或左側取決於寄件人是否是用戶或誰是分別與交談。我也不知道該怎麼做,因爲它改變了textview的中心。
非選擇性
Xcode允許按下單元格。通過didSelectRowatIndexPath tableView函數可以實現在選擇後發生的情況。我可以簡單地不實現這一點,但點擊單元格會導致它變暗以指示它已被按下。我希望消除這種情況,同時保留選擇某些文本並複製和粘貼它或其他任何內容的能力(就像通常在手機上進行的消息一樣)。
其他方法?
這是問題的真正內容。我已經考慮過上述方法,因爲這是我基於我對XCode UI元素的有限經驗能夠想出的。如果爲此目的有更好的方法(或許甚至是吊艙或框架),我很樂意聽到它。我不需要消息界面來看驚人,只是乾淨和清脆。什麼是爲消息傳遞功能設置的適當UI?

+0

雖然主庫聲明爲DEPRECEATED,但您可以使用'JSQMessagesViewController',但社區真的很大,目前正在使用它。 https://github.com/jessesquires/JSQMessagesViewController –

+0

@RatulSharker您可以在應用商店應用中使用棄用的代碼嗎? –

+1

它只被開源發佈者棄用,它不是蘋果的SDK代碼。因此可以在沒有任何應用商店拒絕問題的情況下使用。 –

回答

2

我建議如下:

可變的TextView尺寸:
我假設你使用自動佈局。如果你還沒有,請考慮使用它,因爲它使生活變得更容易!
如果您使用UITableView,您可以動態調整其UITableViewCells的高度,具體取決於使用自行確定尺寸的電池的實際內容。你可以找到一個教程如何做到這一點here
變量TextView位置:
我假設你在表格視圖單元格中有UITextView。在這種情況下,您必須將自動佈局約束設置爲單元格contentView的邊界。如果您定義UITableViewCell的自定義子類,則可以在此類中定義2 IBOutlet鏈接的屬性,以說明左側和右側佈局約束(例如var leftLayoutConstraint: NSLayoutConstraint)。然後,可以在單元格佈局時(即在自定義表格視圖單元格的layoutSubviews函數中)根據需要設置約束的constant屬性。
非選擇性:
我不確定你的意思是「我可以簡單地不實施這個」。請確保您將UITableViewdelegate屬性設置爲您要處理單元格選擇的視圖控制器。選擇單元格默認情況下會更改單元格的顏色,但您可以更改它:在故事板中,選擇您的表格視圖的原型單元格,然後打開Xcode的實用程序窗格(右上角的按鈕)。在「表格視圖單元格」下找到可以設置爲「無」的「選擇」。

我希望這有助於!

相關問題