我有一个应用程序,允许用户发送信息给每个人。完成此过程的方法是将发送的消息保存在本地SQLite数据库中,同时实际将消息发送到数据库,并使用推送通知将消息发送到收件人的SQLite数据库。我所做的安排很好。然而,我困惑的是如何为用户设置实际的交互式UI (我使用的是XCode
)。我认为它应该是一个UITableView
,每个表单元格代表一条消息。但是,通过这种方法,我遇到了一些需求:
可变TextView尺寸
就像常规的iOS
消息传递一样,TextView
的大小需要可变,调整其尺寸以适应每条消息中的所有文本。我不知道如何做到这一点。我对如何一般地改变大小有一个大致的理解,但不知道如何根据该视图中的文本动态地调整大小。
变量TextView位置
同样,与常规的iOS
消息传递一样,文本视图需要被偏移到右侧或左侧,这分别取决于发送方是用户还是与用户交谈的人。我也不知道如何做到这一点,因为它改变了文本视图的中心。
Non-selectability
Xcode允许按下单元格。处理在此选择之后发生的事情可以通过didSelectRowatIndexPath
tableView函数实现。我无法实现这一点,但单击单元格会使其变暗,以指示已按下。我想消除这一点,同时保留能力,例如,选择一些文本,并复制和粘贴它或其他(就像短信正常工作在你的手机)。
其他方法?
这才是问题的真谛。我考虑了上述方法,因为基于我对XCode
UI元素的有限经验,这就是我所能想到的全部。如果有更好的方法(甚至是一个吊舱或框架)来实现这个目的,我很想听听。我不需要消息用户界面看起来很棒,只是干净和清晰。
发布于 2017-09-14 02:48:19
我建议如下:
变量TextView大小:
我想你确实使用了自动布局。如果你还没有,请考虑使用它,因为它使生活更容易!
如果使用UITableView
,则可以使用自调整单元格动态调整其UITableViewCells
的高度,这取决于实际内容。您可以找到如何执行此这里的教程。
变量TextView职位:
我假设您在表视图单元格中有一个UITextView
。在这种情况下,必须将自动布局约束设置为单元格的contentView
的边框。如果您定义了一个UITableViewCell
的自定义子类,那么您可以在这个类中定义IBOutlet
属性,这些属性链接到左边和右边的布局约束(例如var leftLayoutConstraint: NSLayoutConstraint
)。然后,您可以根据需要在单元格布局时(即在自定义表视图单元格的layoutSubviews
函数中)设置约束的layoutSubviews
属性。
Non-selectability:
我不知道你所说的“我不能实现这一点”是什么意思。请确保将delegate
属性的UITableView
设置为要处理单元格选择的视图控制器。默认情况下,选择一个单元格会改变单元格的颜色,但您可以更改如下:在情节提要中,选择表视图的prototype单元格,然后打开Xcode的实用程序窗格(最右上按钮)。在“表视图单元格”下,可以将“选择”设置为“无”。
我希望这能帮到你!
https://stackoverflow.com/questions/46080574
复制