标签: uitapgesturerecognizer

在具有UIGestureRecognizer的视图中,不会调用UIBarButtonItem的操作

我有一个简单的UIViewController派生控制器,它有UITextFields.

同样使用IB,我放置了一个UIToolbar和两个UIBarButtonItems.我按Ctrl-拖动以向按钮添加操作.

- (IBAction)cancel:(id)sender { ... }
- (IBAction)save:(id)sender { ... }
Run Code Online (Sandbox Code Playgroud)

如果我运行代码,则会调用操作.

问题:我想在背景上实现resignFirstResponder范例,所以我在根视图上添加了一个UITapGestureRecognizer:

- (void)viewDidLoad { 
    ...
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard)];
    [self.view addGestureRecognizer:tap];
   }
Run Code Online (Sandbox Code Playgroud)

当我有手势识别器时,不会调用UIBarButtonItems的动作

我怎么能双管齐下?

感谢您的任何解释,可以帮助我实现这一点.

uibarbuttonitem ios uitapgesturerecognizer

2
推荐指数
1
解决办法
847
查看次数

点击手势到UITextView的一部分

我有这个代码:

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapResponse)];
singleTap.numberOfTapsRequired = 1;
[_textView addGestureRecognizer:singleTap];
Run Code Online (Sandbox Code Playgroud)

这将对整个UITextView作出反应,但是是否可以更改它以便它只响应UITextView中字符串的某个部分被点击?比如一个URL?

nsstring uitextview ios uitapgesturerecognizer

2
推荐指数
1
解决办法
3663
查看次数

如何处理UITableView的非单元格区域的点击

我有UITableView几个UITableViewCells在里面.因为我只有几个单元格,所以表格视图的某个区域没有被单元格覆盖.我想在点击空白区域时做点什么.

我尝试UITapGestureRecognizer在表视图上添加一个.它检测到空区域的敲击,但随后细胞无法响应敲击.我尝试在表视图的超级视图上添加点击手势识别器,但结果是一样的.

必须有办法做到这一点,但我还不能弄明白.有没有办法实现我想做的事情?

objective-c uitableview ios uitapgesturerecognizer

2
推荐指数
1
解决办法
1091
查看次数

点击手势以关闭键盘似乎要禁用didSelectRow

我已将以下代码添加到我的viewDidLoad中

UITapGestureRecognizer * tapGesture = [[UITapGestureRecognizer alloc]
                                           initWithTarget:self
                                           action:@selector(hideKeyBoard)];

[self.view addGestureRecognizer:tapGesture];
Run Code Online (Sandbox Code Playgroud)

以及我的.m文件中的某个位置

-(void)hideKeyBoard {
    [theEditableTextField resignFirstResponder];
    [theEditableTextView resignFirstResponder];


}
Run Code Online (Sandbox Code Playgroud)

在文本字段/视图外部点击时,这种方法可以很好地消除键盘,但是我已经添加了表格视图,我需要能够选择一个城镇,并且无法使用此代码选择一行。

在文本框或文本视图之外点击但如何仍能对表视图使用didSelectRow时,如何禁用键盘?

didselectrowatindexpath ios uitapgesturerecognizer

2
推荐指数
1
解决办法
350
查看次数

用于UIPIckerView的UITapGestureRecognizer

UITapGestureRecognizer与UIPickerView无法正常工作.为什么?

class someVC: UIViewController, UITapGestureRecognizerDelegate

override func viewDidLoad() {
   let tap = UITapGestureRecognizer(target: self, action: "dismissKeyboard")
   self.pickerView.addGestureRecognizer(tap)
   tap.delegate = self
}

func dismissKeyboard() {
   textField.resignFirstResponder()
}
Run Code Online (Sandbox Code Playgroud)

uipickerview uitapgesturerecognizer swift

2
推荐指数
1
解决办法
2629
查看次数

长按和点击识别器可用于多个UIButton

我的UI上有多个按钮,我想根据不同的点击类型执行不同的功能,

  • 一键点击
  • 双击
  • 长按

对于我来说,只需轻按一下即可完成操作,这是一个IBAction,所有四个按钮均已连接到IBAction,但对于其他类型的点击,我却无法控制

我了解我需要使用点击手势识别器,但是无法将其设置为多个UIButton,

这是我想做的事的例子

import UIKit

class ViewController: UIViewController {


@IBOutlet weak var Label: UILabel!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


func ButtonSingleTap(sender:UIButton!) {

    let ButtonNumber: String = String(sender.tag)
    Label.text = "Button " + ButtonNumber + " is Single Tapped"
}


func ButtonDoubleTap(sender:UIButton!) {

    let ButtonNumber: String = String(sender.tag) …
Run Code Online (Sandbox Code Playgroud)

uibutton uitapgesturerecognizer uilongpressgesturerecogni xcode7 swift2

2
推荐指数
1
解决办法
818
查看次数

覆盖touchesBegan:错误-方法不会覆盖超类中的任何方法

我试图覆盖UITapGestureRecognizer的自定义子类中的touchesBegan。代码如下。我是从这里得到的:如何加快对双击的识别?。这是公认的答案,但我遇到一个错误:方法未从其超类覆盖任何方法。我已经检查过了,这似乎确实是touchesBegan的签名。救命?

import UIKit

class UIShortTapGestureRecognizer: UITapGestureRecognizer {
    let tapMaxDelay: Double = 0.3

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        super.touchesBegan(touches, withEvent: event)
        delay(tapMaxDelay) {
        // Enough time has passed and the gesture was not recognized -> It has failed.
            if  self.state != UIGestureRecognizerState.Ended {
                self.state = UIGestureRecognizerState.Failed
            }
        }
    }


}
Run Code Online (Sandbox Code Playgroud)

ios uitapgesturerecognizer swift

2
推荐指数
1
解决办法
1453
查看次数

Xamarin.Forms警告:尝试使用iOS图像/手势识别器显示其视图不在窗口层次结构中的*on*

我有一个模态导航页面,其中的图像就像一个按钮;

<Image Source ="share.png" HeightRequest="32" WidthRequest="32">
    <Image.GestureRecognizers>
        <TapGestureRecognizer Tapped="On_Share" />
    </Image.GestureRecognizers>
</Image>
Run Code Online (Sandbox Code Playgroud)

而背后的方法;

async void On_Share(object sender, EventArgs e)
{
    if (CrossConnectivity.Current.IsConnected)
    {
        var message = "Share this";
        var title = "Share";
        await CrossShare.Current.Share(new ShareMessage { Text = message, Title = title}, new ShareOptions { ExcludedUIActivityTypes = new[] { ShareUIActivityType.PostToFacebook } });
    }
    else
    {
        NoInternetLabel.IsVisible = true;
    }
 }
Run Code Online (Sandbox Code Playgroud)

当我尝试单击共享图像/按钮时出现错误.我已将断点放入On_Share方法的第一行并且它们没有被击中.

Warning: Attempt to present <UIActivityViewController: 0x141b60f70> on <Xamarin_Forms_Platform_iOS_ModalWrapper: 0x1419a0920> whose view is not in the window hierarchy!
Run Code Online (Sandbox Code Playgroud)

请注意这在Android中运行良好,我只看到iOS中的问题.我不确定发生了什么 - …

share xamarin.ios uitapgesturerecognizer xamarin.forms

2
推荐指数
1
解决办法
1682
查看次数

在Swift 3中单击和双击UITableViewCell

我在TableViewCell上有故事板segue,我用它在单击单击didSelectRowAt方法中转移到另一个VC .现在我做了双击TapGestureRecognizer以处理细胞上的轻微敲击.问题是,单击时,segue正在执行,双击不起作用.单击单元格,双击可正常工作.到目前为止我的代码可能以某种方式解决这个问题吗?或者我需要删除segue并单独处理单击和双击.谢谢你的任何建议

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    let doubleTap = UITapGestureRecognizer(target: self, action: #selector(handleDoubleTap))
    doubleTap.numberOfTapsRequired = 2
    view.addGestureRecognizer(doubleTap)
}

func handleDoubleTap(recognizer: UIGestureRecognizer) {
    let p = recognizer.location(in: tableView)

    let indexPath = tableView.indexPathForRow(at: p)

    if let _ = indexPath {
        tableView.deselectRow(at: indexPath!, animated: true)
        update(index: (indexPath?.row)!, isFinished: true)
    }

    print ("doubke")
}


override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if (segue.identifier == "showSingleTask") …
Run Code Online (Sandbox Code Playgroud)

uitableview uitapgesturerecognizer swift swift3

2
推荐指数
1
解决办法
4023
查看次数

轻拍手势识别器不工作.....?

我不得不创建一个新线程bcoz它让我发疯,所有其他在线答案都完全一样.我已经无数次地完成了这件事,但我无法看到我为生命而失踪的东西.我正在使用"测试"视图控制器只是为了让轻敲手势工作,但它根本不起作用...我相当确定我正确设置它,因为这是我一直在实现它的方式过去:(是的,我已经选中了isUserInteractionEnabled的方框).我甚至在一个不同的viewcontroller上以这种方式实现它,它正在工作......

class TestViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()

    view.addGestureRecognizer(tap)
}

let tap = UITapGestureRecognizer(target: self, action: #selector(wasTapped))


@objc func wasTapped() {
    print("tapped")
}
Run Code Online (Sandbox Code Playgroud)

}

我也尝试将参数添加到wasTapped:

 @objc func wasTapped(gestureRecognizer: UITapGestureRecognizer) {
    print("tapped")
}
Run Code Online (Sandbox Code Playgroud)

uitapgesturerecognizer swift

2
推荐指数
3
解决办法
7305
查看次数