“TweetBot”应用程序在每个单元格下方都有一个下拉菜单,点击单元格时会出现该菜单。菜单显示为不同的单元格,直接位于点击的单元格下方。这是一个(相当大的)屏幕截图,以使其更加清晰:
这个界面创意非常适合我正在创建的应用程序。由于需要正确匹配单元格/indexPaths,它并不像听起来那么简单。我对如何实现这个有一些想法 - 但是:
您将如何实现此功能(或者,如果您已实现此功能,您是如何实现的?)或者甚至更好 - 是否已经有任何开源实现?
最佳答案
创建单元格时,创建 2 个 UIView,一个包含所有正常内容,另一个包含下拉列表。
设置下拉 View 的自动调整大小掩码,使其具有不灵活的高度和灵活的上边距。 (其余照常) 设置普通内容 View 的自动调整大小掩码,使其具有不灵活的边距和灵活的宽度和高度。
为两个 View 分别设置一个标签。
在内容 View 之前添加下拉 View ,它被内容 View 隐藏(内容 View 也不能有透明背景)
在 TableView 委托(delegate)方法中,当一个单元格被按下时,设置添加的内容 View 的自动调整大小掩码,使用标签来获取它,除了不灵活的高度和灵活的底部外边距之外与以前相同。并添加:
[tableView beginUpdates];
[tableView endUpdates];
创建一个实例变量来保存一个 NSIndexPath 对象。将变量设置为按下的单元格的索引路径。
在table view delegate方法中设置if单元格的高度,添加一个if语句,这样下拉的高度就加上了选中单元格的高度(会在上面描述的实例变量中)
将必要的 if 语句添加到 cell pressed 方法以确定是显示下拉列表还是隐藏它。
这只是对向单元格添加下拉列表的一种方法的粗略指示,还有其他可能更好的方法。当我拿到我的笔记本电脑时,我可能会添加一些代码和更好的细节。
关于iphone - 我如何重新创建 TweetBot 样式 'drop-down' 单元格菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8058089/