gpt4 book ai didi

ios - 修改 UIStepper 自动重复行为

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:04:30 26 4
gpt4 key购买 nike

我有一个客户希望我修改 UIStepper 的自动重复行为。

如果用户选择触摸并按住步进器的 + 按钮,步进器的值开始以每半秒左右 1 的速率增加,然后在大约 3 秒后,值开始变化得更快.

有没有办法修改它的工作方式,例如,如果用户点击并按住,值将立即以更快的速度增加?

我查看了 UIStepped 文档,但没有看到任何与此相关的内容,但我想知道是否有办法通过 IBAction 或其他方式来完成此操作。

最佳答案

首先,为您的步进器添加两个操作:

[theStepper addTarget:self action:@selector(stepperTapped:) forControlEvents:UIControlEventTouchDown];
[theStepper addTarget:self action:@selector(stepperValueChanged:) forControlEvents:UIControlEventValueChanged];

下面是这些操作的样子:

- (IBAction)stepperTapped:(id)sender {
self.myStepper.stepValue = 1;
self.myStartTime = CFAbsoluteTimeGetCurrent();

- (IBAction)stepperValueChanged:(id)sender {
self.myStepper.stepValue = [self stepValueForTimeSince:self.myStepperStartTime];
// handle the value change here

这是神奇的代码:

- (double)stepValueForTimeSince:(CFAbsoluteTime)aStartTime {
double theStepValue = 1;
CFAbsoluteTime theElapsedTime = CFAbsoluteTimeGetCurrent() - aStartTime;

if (theElapsedTime > 6.0) {
theStepValue = 1000;
} else if (theElapsedTime > 4.0) {
theStepValue = 100;
} else if (theElapsedTime > 2.0) {
theStepValue = 10;
}

return theStepValue;

关于ios - 修改 UIStepper 自动重复行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9809455/

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