- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用 UIPickerView 设置一个 UI,该 UIPickerView 是根据 UITableView 中的选定行填充的。本质上,它与您在开始和结束屏幕中看到的用于在日历应用程序中添加事件的 UI 相同。
http://raoli.com/files/uipicker.png
我有我的数据源和委托(delegate)的设置,因此选择器会根据选择进行填充并正确更新我的模型......大部分时间。
我遇到的一个问题是当有人轻弹选择器 View 然后更改 TableView 中的选择时,UIPickerViewDelegate 尝试记录针对 TableView 中新选择的更改,而不是原始选择。这显然在我的代码中是为什么会发生这种情况,并且我有一些想法来修改我的代码以更好地表现,但我想我会看到 Apple 在他们的 UI 中做了什么。
当您在选择器旋转完成前滑动选择器并切换时间时,旋转会立即停止,选择器更新为新时间类型的值,而原始类型的时间保持不变。我没有看到任何取消动画的方法,但我可能是错的。我希望我错了,因为这会让我的生活更轻松。
我能看到的另一种选择是为每个属性使用不同的 UIPickerViews 并将它们切换出去。因此,很明显,Apple 示例将有 2 个 UIPickerView 实例。这只会产生其他需要完成的工作,我想我会看看是否有一种方法可以用最少的 View 来完成它。
更新 Aaron 的想法显示了一些希望,但看起来有很多关于如何根据选择器的状态将消息传递给委托(delegate)的边缘情况,主要是选择器是否目前正在制作动画。由于似乎无法确定选择器当前是否正在旋转(至少通过公共(public) API),因此尝试解决可能的配置似乎有问题。我最终使用了多个选择器,在所选属性更改时切换选择器的可见性,并忽略来自现在隐藏的 UIPickerView 实例的委托(delegate)消息。
最佳答案
我觉得
- (void)selectRow:(NSInteger)row inComponent:(NSInteger)component animated:(BOOL)animated
将是一个很好的候选人。如果 animated
为 NO
,它应该立即显示您想要的内容而不移动。
当您决定设置数据时,调用选择器 View 上的方法以反射(reflect)该设置。我希望它会覆盖任何当前的动画或惯性效果,希望您不会在委托(delegate)中收到 didSelectRow:
。如果您这样做,可能有必要忽略它。
关于iphone - 可以取消UIPickerView动量动画吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4382353/
我正在编写一个汽车租赁应用程序,用户必须指定取车和还车位置。 第一步,用户必须选择取货/返回办公室的区域/区域。选择区域后,他必须从该区域可用的办事处列表中进行选择。 为了选择办公室,我使用了 4 个
我正在尝试创建一个文本框,当选择该文本框时,UIPickerView 将打开并提供可供选择的选项。选择后,UIPickerView 将隐藏,所选项目将显示在文本框中。当我运行此程序时,数组中的第一个元
我有多个 UIPickerView 的问题,我在 UICollectionView 上有 8 个,当我滚动第一个 PickerView 和第五个 PickerView 时,它开始自行滚动并采用与第一个
我正在阅读一本 Swift OOP 书籍,我理解实例方法具有将在函数中使用的参数的想法。不清楚的是,在遵循 UIPickerViews 和 UITableViews 的在线教程时,有些方法将 UIPi
我有两个不同的 UIPickerView用户选择第一个 UIPickerView来自 didSelectRow第一个选择器,我得到第二个的输入 UIPickerView .我尝试为单个选择器设置标签,
函数 pickerView() 在 ViewLoad 上调用的代码 private func createPickerView(){ picker = UIPickerView(frame:
我创建了 UIPickerView 如下。现在我想让它 resignFirstResponder 如果用户在其他地方点击然后 UIPickerView 我怎么能实现呢。我已经按照以下方式创建了 UIP
我的 View Controller 中有两个 UIPickerview,pickerView1 和 pickerView2。 我在这里想要实现的是,当我从 pickerView1 中选择一个字符串时
我们正在使用 UIPickerView允许用户从选项列表中进行选择。我们正在添加 UIPickerView作为容器 UIView 的 subview 。然后我们将一个 UITapGestureReco
好吧,我不知道如何处理这个问题。 我有一个 UITextField,我根据 XML 文件的定义将其动态添加到 UITableView,在 XML 文件中,我可以将列表指定为其中一种数据类型,然后我所做
我现在有2个UIPickerView,以后想再添加3个,代码如下: -(void)viewDidLoad{ Pos_x = 5; Pos_y = 70; for (i= 0; i<2; i++) {
UIPickerView 的 selectRow:inComponent:animated:调用pickerView:didSelectRow:inComponent: ? 否则,我可以自己打电话吗?
我有两个按钮,打开一个 UIPickerView @IBOutlet weak var convertFromButton: UIButton! @IBOutlet weak var convertT
祝大家有美好的一天 我尝试在主题行中解释我的查询。据我了解,从代码中看到,所有 pickerview 都在 ViewDidLoad() 中初始化,这意味着它们都有自己的数据集。作为数据验证的一部分(在
我试图在 PickerView 中显示血型,但由于某些原因,选项仅显示为问号! 这是我的代码: class RegisterViewController: UIViewController,
我正在尝试将工具栏添加到 UIPicker . 我已经看到正确的方法是这样: UIToolbar* toolbarWeight= [[UIToolbar alloc] initWithFrame:CG
我将如何向 uipickerview 添加手势事件来更改选项卡?我必须创建一个自定义类,但是,我不知道如何处理 uipickerview。我当前在 uiviews 中存在手势来执行此操作,但我在使用
我想做的是: 显示了一个 UIPickerView。如果用户触摸选定的行,则该行将被锁定(它是多组件选择器),并且其他组件可以自由旋转。如果该行已被锁定并且用户触摸了锁定的行,则该行将被解锁并可以自由
我有两种看法。第一个:第一个 View Controller 第二:SecondViewController FirstView Controller 是我的 UINavigationControll
使用 UISegmentedControl,您可以在不选择任何内容的情况下启动它。如何使用 UIPickerView 做到这一点?看起来显示默认为索引 0。 谢谢 最佳答案 选择器轮必须停留在某些值上
我是一名优秀的程序员,十分优秀!