【发布时间】:2011-08-11 12:37:35
【问题描述】:
我已经决定再也不想使用 UIPickerView 了……它在功能、设计和大小(高度)方面完全不灵活。它也偶尔会卡在行之间,并且在松开轮子和触发委托方法之间发生的延迟表明已经选择了新行(因为“安顿”动画)导致了很多问题我一直在开发的应用程序的上下文。
话虽如此,UIPickerView 的用户友好方面还是不错的,我想尝试复制它。我试图研究不同的方法来做到这一点,但没有太大的成功。有没有人知道从头开始制作类似的东西会涉及什么?
我试图让 UITableView 子类以这样的方式运行,即当前位于表格中间的任何单元格(在拖动时会发生变化等)都会将其背景颜色更改为不同的颜色,这意味着它是“选定”。一旦拖动表格以使“选定”单元格不再位于中间,该单元格将恢复正常并且新的中间单元格将改变颜色。所以这就像 UIPickerView 在某种意义上你不必点击一个单元格;相反,您只需拖动以默认选择一个。
我认为拦截 UITableView 的“touchesMoved”方法并添加一些代码循环遍历表格中所有当前可查看的单元格,检查它们的框架是否与表格的中心点重叠应该很容易,并且相应地更改它们的外观(加上根据需要向其他类发送通知以指示“选择”更改)。不幸的是,我无法让它工作,因为当我拖动表格时不会调用“touchesMoved”方法。我错过了什么明显的东西吗?
在这一点上,任何想法或建议都将非常感激......我制作了一个严重依赖 UIPickerView 对象的应用程序,并且由于我遇到的问题,我将不得不放弃它,除非我可以想出办法来完成这项工作。
非常感谢,
克里斯
【问题讨论】:
标签: iphone cocoa-touch uitableview uipickerview