关于如何从头开始制作UIPickerView的任何想法?

时间:2011-04-23 15:28:06

标签: iphone cocoa-touch uitableview uipickerview

我已经决定不再使用UIPickerView ......它在功能,设计和尺寸(高度)方面完全不灵活。它偶尔也会卡在行之间,并且在释放轮子和触发委托方法之间发生的延迟表明已经选择了一个新行(因为“安顿”动画)导致了很多问题。我一直在努力的应用程序的上下文。

话虽这么说,UIPickerView的用户友好方面很好,我想尝试复制它。我试图研究可以做到的不同方式,但没有取得多大成功。有没有人对从头开始做类似的事情有什么想法?

我试图让一个UITableView子类以这样一种方式运行,即当前在表格中间的任何单元格(它会在拖动时改变等)将其背景颜色改变为不同的暗示它是“选择”。一旦拖动桌子使得“选定的”细胞不再在中间,细胞将恢复正常并且新的中间细胞将改变颜色。所以这就像UIPickerView在某种意义上说你不必点击一个单元格;相反,您只需拖动即可默认选择一个。

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

此时我们非常感谢任何想法或建议...我制作了一个严重依赖UIPickerView对象的应用程序,并且由于我遇到的问题,我将不得不放弃它,除非我可以找到一种方法来完成这项工作。

非常感谢,

克里斯

1 个答案:

答案 0 :(得分:4)

请记住,UITableView是UIScrollView的子类,UITableViewDelegate也会获取所有UIScrollViewDelegate方法调用。 scrollViewDidScroll:听起来很容易知道何时滚动表格视图。

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