gpt4 book ai didi

iphone - 可以取消UIPickerView动量动画吗?

转载 作者:搜寻专家 更新时间:2023-10-30 20:12:31 24 4
gpt4 key购买 nike

我正在尝试使用 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

将是一个很好的候选人。如果 animatedNO,它应该立即显示您想要的内容而不移动。

当您决定设置数据时,调用选择器 View 上的方法以反射(reflect)该设置。我希望它会覆盖任何当前的动画或惯性效果,希望您不会在委托(delegate)中收到 didSelectRow:。如果您这样做,可能有必要忽略它。

关于iphone - 可以取消UIPickerView动量动画吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4382353/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com