2014-10-27 37 views
1

我想移動一個自動完成的tableview,所以它的頂部將觸摸字段用戶的底部邊界當前正在輸入 要做到這一點,我做了一些計算,然後執行在接觸相應領域的舉動。Touch Down不執行動作它應該是

這裏有3個出口變量,2個字段和一個表視圖:

@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字段時,什麼也沒有發生。或者是正確的,我簡要地看到桌子在鍵盤向上移動時閃爍到所需的位置,然後桌子向後移回到原來的位置。只有在場上第二次接觸,我才能得到理想的舉動。這是爲什麼 ? (請使用SWIFT)

+0

可能重試,因爲iOS8上仍然需要它做了一些工作。 – AMAN77 2014-10-27 18:47:23

+0

您是否知道替代方案,以便我可以在第一次觸地時正確移動視圖,因爲它應該發生? – 2014-10-28 09:57:10

+0

我有時會添加一個計時器和一個布爾重做觸摸作爲一個四處走動? – AMAN77 2014-10-28 10:50:27

回答

1

下面是一些代碼,曾先後強行與定時器和一個布爾

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]; 
} 
相關問題