关于如何从头创建UIPickerView有什么想法吗



我已经决定我不想再使用UIPickerView…它在功能、设计和大小(高度)方面完全不灵活。它也偶尔会卡在行之间,并且在松开轮子和当委托方法被触发指示新行已被选中(因为"落户"动画)之间发生的延迟已经在我一直在工作的应用程序的上下文中引起了许多问题。

话虽这么说,UIPickerView的用户友好方面很好,我想尝试复制它。我试着研究了不同的方法,但都不太成功。有没有人有任何想法,将涉及到什么,使类似的东西从零开始?

我试图得到一个UITableView子类的行为这样一种方式,无论单元格是目前在表的中间(它会改变,而拖动等)会改变它的背景颜色不同的东西暗示它是"选择"。一旦表格被拖拽,"选定的"单元格不再位于中间,单元格就会恢复正常,新的中间单元格会改变颜色。这就像UIPickerView你不需要点击单元格;相反,你只需要拖动,默认选中一个。

我认为它应该很容易拦截UITableView的"touchesMoved"方法,并添加一些代码,循环通过表格中所有当前可见的单元格,检查它们的帧是否与表格的中心点重叠,并相应地改变它们的外观(加上根据需要向其他类发送通知,以指示"选择"更改)。不幸的是,我不能让这个工作,作为"touchesMoved"方法不被调用,当我拖动表。我错过了什么明显的东西吗?

在这一点上,任何想法或建议都将非常感谢……我制作了一个严重依赖于UIPickerView对象的应用程序,由于我遇到的问题,我不得不放弃它,除非我能找到一种方法让它工作。

非常感谢,

克里斯

记住UITableView是UIScrollView的子类,UITableViewDelegate也会获得所有的UIScrollViewDelegate方法调用。scrollViewDidScroll:听起来很容易满足了解表视图何时滚动的要求。

至于查找哪一行在视图的中间,只需使用indexPathForRowAtPoint:

相关内容

最新更新