ユーザーがあるビューやラベルなどから別のビューにスワイプしたかどうかを確認しようとしています。
これが私の関連するコード
ViewController.hです:
@property (strong, nonatomic) IBOutlet UITextField *textField;
@property (strong, nonatomic) IBOutlet UILabel *swipeBegin;
@property (strong, nonatomic) IBOutlet UILabel *swipeEnd;
TextField:すべてが成功したかどうかを表示します。
SwipeBegin:スワイプを開始するラベル。
SwipeEnd:スワイプが終了するはずのラベル。
ViewController.m:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [touches anyObject];
if ([touch view] == swipeBegin) {
gestureStartPointTouched = YES;
}
スワイプが「swipeBegin」で開始された場合、ブール値はYESに設定されます。
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [touches anyObject];
if ([touch view] == swipeEnd) {
if (gestureStartPointTouched == YES) {
[TextField setText:@"Success"];
}
}
「swipeBegin」でスワイプを開始すると、touchesBeganメソッドが呼び出されます->正常に動作します
問題のある部分はtouchesEndedメソッドです。
if([touch view] == swipeEnd)
私がそれについて何をしても偽です。
誰かアドバイスはありますか?
ありがとう !
解決
touchesEndedメソッドの編集:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
if ([self.view hitTest:[[touches anyObject] locationInView:self.view] withEvent:event] == SwipeEnd) {
if (gestureStartPointTouched == YES) {
[TextField setText:@"Success"];
}
}