gpt4 book ai didi

ios - Touch Down 不执行它应该执行的操作

转载 作者:行者123 更新时间:2023-11-28 07:15:16 25 4
gpt4 key购买 nike

我正在尝试移动一个自动完成的表格 View ,以便它的顶部将触及用户当前正在输入的字段的底部边框。为此,我进行了一些计算,然后在相应字段上执行触地移动。

这里有 3 个导出变量、2 个字段和一个 TableView :

@IBOutlet var tableRefresh:UITableView!
@IBOutlet weak var countriesFieldVar: UITextField!
@IBOutlet weak var countriesFieldVar2: UITextField!

这里是变量....

var field1YBottomCoordinate = 0
var tableXCenter = 0
var tableYCenter = 0
var field2YBottomCoordinate = 0
var differenceBetweenY = 0

....我在 viewdidload 中设置的:

     field1YBottomCoordinate = Int(CGRectGetMinY(countriesFieldVar.frame))
tableXCenter = Int(CGRectGetMidX(tableRefresh.frame))
tableYCenter = Int(CGRectGetMidY(tableRefresh.frame))

field2YBottomCoordinate = Int(CGRectGetMinY(countriesFieldVar2.frame))
differenceBetweenY = Int(field2YBottomCoordinate - field1YBottomCoordinate) + 1

然后,在触及 countriesFieldVar2 时,我执行此操作以将 tableRefresh 移动到所需位置:

@IBAction func coutriesField2SetSelect(sender: AnyObject) {
tableRefresh.center = CGPoint(x:tableXCenter, y: (tableYCenter + differenceBetweenY))
}

问题是第一次接触 countriesFieldVar2 字段时,没有任何反应。或者更准确地说,当键盘向上移动时,我短暂地看到 table 闪烁到所需的位置,然后 table 又回到原来的位置。只有在我第二次触地时,我才得到想要的 Action 。这是为什么 ? (请使用swift)

最佳答案

这里有一些代码可以使用计时器和 bool 值强制重试

aTimer = [NSTimer scheduledTimerWithTimeInterval:.5 target:self selector:@selector(tryAgain) userInfo:nil repeats:YES];

-(void)tryAgain{
if (!checkBool){
[self buttonPressed:];
}
}


-(IBAction) buttonPressed:(id) sender{
//First fill in code here
checkBool = YES;
[aTimer invalidate];
}

关于ios - Touch Down 不执行它应该执行的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26594319/

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