2017-09-06 53 views
8

Tôi có một ứng dụng cho phép người dùng gửi tin nhắn cho mỗi người. Quá trình này được thực hiện bằng cách lưu các thư đã gửi trong một cơ sở dữ liệu SQLite cục bộ, trong khi thực sự gửi các thông báo tới một cơ sở dữ liệu và sử dụng các thông báo đẩy để gửi thông báo tới cơ sở dữ liệu SQLite của người nhận. Việc thiết lập tôi đã làm việc tốt. Tuy nhiên, những gì tôi đang nhầm lẫn là làm thế nào để thiết lập giao diện người dùng tương tác thực tế cho người dùng (Tôi đang sử dụng XCode). Tôi nghĩ rằng nó phải là một UITableView với mỗi tế bào bảng đại diện cho một tin nhắn. Tuy nhiên, với cách tiếp cận này, tôi chạy vào một vài yêu cầu:
Biến TextView kích cỡ
Cũng như với iOS tin nhắn thông thường, kích thước của TextView cần phải được thay đổi, điều chỉnh kích thước của nó để phù hợp với tất cả các văn bản trong mỗi tin nhắn . Tôi không biết làm thế nào để đạt được điều này. Tôi có một sự hiểu biết chung về cách nói chung là các kích thước khác nhau, nhưng không có đầu mối làm thế nào để tự động dựa trên văn bản trong chế độ xem đó.
Positions TextView Biến
Một lần nữa, cũng như với iOS tin nhắn thông thường, các TextView cần phải được bù đắp cho một trong hai bên phải hoặc bên trái tùy thuộc vào việc người gửi là người sử dụng hoặc người đang trò chuyện với, tương ứng. Tôi cũng không biết làm thế nào để làm điều này, bởi vì nó thay đổi trung tâm của textview.
Không thể chọn
Xcode cho phép các ô được nhấn. Việc xử lý những gì xảy ra sau khi lựa chọn này có thể đạt được bằng hàm tableView didSelectRowatIndexPath. Tôi chỉ đơn giản là không thể thực hiện điều này, nhưng việc nhấp vào ô khiến cho nó chuyển sang màu tối hơn để cho biết nó đã được nhấn. Tôi muốn loại bỏ điều này trong khi giữ lại khả năng, nói, chọn một số văn bản và sao chép và dán nó hoặc bất cứ điều gì (giống như tin nhắn hoạt động bình thường trên điện thoại của bạn).
Các phương pháp tiếp cận khác?
Đây là loại thịt thực sự của câu hỏi. Tôi đã xem xét cách tiếp cận trên bởi vì đó là tất cả những gì tôi có thể nghĩ ra dựa trên kinh nghiệm hạn chế của tôi với các yếu tố giao diện người dùng XCode. Nếu có một cách tiếp cận tốt hơn (có lẽ ngay cả một nhóm hoặc khuôn khổ) cho mục đích này, tôi rất thích nghe nó. Tôi không cần giao diện người dùng nhắn tin để xem tuyệt vời, chỉ cần sạch sẽ và sắc nét.Giao diện người dùng thích hợp được thiết lập cho chức năng nhắn tin là gì?

+0

bạn có thể sử dụng 'JSQMessagesViewController', mặc dù thư viện chính được khai báo là DEPRECEATED nhưng cộng đồng thực sự lớn đang sử dụng nó. https://github.com/jessesquires/JSQMessagesViewController –

+0

@RatulSharker Bạn có thể sử dụng mã không dùng nữa trong ứng dụng cửa hàng ứng dụng không? –

+1

chỉ bị nhà xuất bản nguồn không còn sử dụng nữa, không có mã SDK táo nào cả. để nó có thể được sử dụng mà không có bất kỳ vấn đề từ chối cửa hàng ứng dụng nào. –

Trả lời

2

Tôi đề nghị như sau:

Biến TextView kích cỡ:
tôi giả sử bạn sử dụng bố trí tự động. Nếu bạn chưa làm, hãy cân nhắc sử dụng nó vì nó giúp cuộc sống trở nên dễ dàng hơn nhiều!
Nếu bạn sử dụng UITableView, bạn có thể điều chỉnh chiều cao của UITableViewCells động, tùy thuộc vào nội dung thực tế bằng cách sử dụng các ô tự định kích thước. Bạn có thể tìm hướng dẫn cách thực hiện điều này here.
Vị trí TextView biến:
Tôi giả sử bạn có một số UITextView trong ô xem bảng. Trong trường hợp này, bạn phải đặt ràng buộc bố cục tự động thành đường viền của ô contentView của ô. Nếu bạn xác định một lớp con tùy chỉnh của UITableViewCell, bạn có thể xác định trong thuộc tính lớp này là IBOutlet được liên kết để nói ràng buộc bên trái và bố cục đúng (ví dụ: var leftLayoutConstraint: NSLayoutConstraint). Sau đó, bạn có thể đặt thuộc tính constant của ràng buộc theo yêu cầu khi ô được đặt, ví dụ: trong chức năng layoutSubviews của ô xem bảng tùy chỉnh. Không thể chọn:
Tôi không chắc chắn ý của bạn là gì „Tôi chỉ đơn giản là không thực hiện được điều này". Vui lòng đảm bảo rằng bạn đặt thuộc tính delegate của UITableView thành bộ điều khiển chế độ xem nơi bạn muốn xử lý lựa chọn ô. Việc chọn ô sẽ thay đổi màu ô theo mặc định, nhưng bạn có thể thay đổi điều này: Trong bảng phân cảnh, chọn ô mẫu của chế độ xem bảng và mở ngăn tiện ích của Xcode (nút trên cùng bên phải). Trong „ô xem bảng“ bạn tìm thấy „Lựa chọn“ mà bạn có thể đặt thành „Không“.

Tôi hy vọng điều này sẽ hữu ích!

Các vấn đề liên quan