我需要在我的应用程序中显示一个正在运行的文本流,我从我的服务器获取了正在运行的文本,我可以使用流正在运行的 NSLog 看到它。文本是变化的,并且每秒都有一个新行。由于我是 iOS 的新手,所以我已经进行了研究,并且有些夫妇我仍然感到困惑:
1.在UITableView和UIScrollView之间,你推荐哪一个?2.什么是正确的库?它是像 NSStream 还是我只是将它呈现给我的 UITable?
如果您可以为此提供代码段或教程,将不胜感激。
谢谢...
我需要在我的应用程序中显示一个正在运行的文本流,我从我的服务器获取了正在运行的文本,我可以使用流正在运行的 NSLog 看到它。文本是变化的,并且每秒都有一个新行。由于我是 iOS 的新手,所以我已经进行了研究,并且有些夫妇我仍然感到困惑:
1.在UITableView和UIScrollView之间,你推荐哪一个?2.什么是正确的库?它是像 NSStream 还是我只是将它呈现给我的 UITable?
如果您可以为此提供代码段或教程,将不胜感激。
谢谢...
我没有时间写代码,因为它并不简单。
当您收到新内容时,您将需要创建一个 UITextView 并将字符串附加到文本视图。
UITextView 是 UIScrollView 的子类,因此您可以在其上使用所有 UIScrollView 操作,包括在添加新内容时向下滚动到底部。这是获得良好性能的最佳方式,因为 UIScrollView 和 UITextView 都紧密集成到设备上的图形硬件中。
如果文本真的很大(数百兆字节),那么您还应该在将新文本添加到末尾时从文本视图顶部删除旧文本。
只需使用您现在拥有的代码,而不是 NSLog(),将其附加到 UITextView。
恕我直言,UITableView
将是理想的选择,因为它已经过优化以重复使用其单元格。如果您使用滚动视图,3600 行(即 1 小时日志)可能会以 3600 个文本视图(或标签)结束,而对于表格视图,它始终是屏幕上可见的行数。
对于数据模型,我认为你可以只使用一个大数组,它会不断地从服务器获取数据,当它变得太大时可能会被截断(我的意思是删除非常旧的行)。
记住优化规则:在优化之前先让它工作。