当前位置: 首页 > 编程笔记 >

Swift 2.1 为 UIView 添加点击事件和点击效果

郎宏逸
2023-03-14
本文向大家介绍Swift 2.1 为 UIView 添加点击事件和点击效果,包括了Swift 2.1 为 UIView 添加点击事件和点击效果的使用技巧和注意事项,需要的朋友参考一下

前言

  UIView 不像 UIButton 加了点击事件就会有点击效果,体验要差不少,这里分别通过自定义和扩展来实现类似 UIButton 的效果。

正文

  一、为 UIView 添加点击事件

extension UIView {

  func addOnClickListener(target: AnyObject, action: Selector) {
    let gr = UITapGestureRecognizer(target: target, action: action)
    gr.numberOfTapsRequired = 1
    userInteractionEnabled = true
    addGestureRecognizer(gr)
  }

}

        二、为 UIView 添加点击效果

class UIViewEffect : UIView {

  override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    backgroundColor = UIColor.groupTableViewBackgroundColor()
  }

  override func touchesCancelled(touches: Set<UITouch>?, withEvent event: UIEvent?) {
    UIView.animateWithDuration(0.15, animations: { () -> Void in
      self.backgroundColor = UIColor.clearColor()
    })
  }

  override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
    UIView.animateWithDuration(0.15, animations: { () -> Void in
      self.backgroundColor = UIColor.clearColor()
    })
  }
}

 这里大家可以换成自己的点击效果,如果是 UIImageView 可以换成点击变更透明度。

 类似资料:
  • 问题内容: 我想将点击事件添加到中。我使用了这个例子,并得到了: 但是不幸的是没有任何反应。当我用另一个元素(例如按钮)测试它时,它可以工作: 问题答案: 您可以将点击附加到iframe内容: 注意:这仅在两个页面位于同一域中时才有效。

  • 问题内容: 我想使用获取ID为参数的处理程序来处理事件。 我可以通过JavaScript如下添加事件处理程序,并且可以正常运行: 但是在这种情况下,我无法将参数传递给。我试图打印的,但没有结果。 HTML属性根本不起作用,不调用处理程序。 问题答案: 您可以使用闭包来传递参数: 但是,我建议您使用更好的方法来访问框架(我只能假设您使用的是DOM0方式,即按其名称访问框架窗口-只是为了向后兼容而保留

  • 下面是.java文件中的代码

  • 本文向大家介绍jQuery中slideUp 和 slideDown 的点击事件,包括了jQuery中slideUp 和 slideDown 的点击事件的使用技巧和注意事项,需要的朋友参考一下 先贴代码,再讲详细事件 重点(Tips): 1、click 事件 按钮的选择    在这个断码中是  “.flip” 2、节点的选择   在这段代码中是 “.panel” 再贴一段代码 .slideToggl

  • 本文向大家介绍Android如何给按钮添加点击音效,包括了Android如何给按钮添加点击音效的使用技巧和注意事项,需要的朋友参考一下 有很多制作精良的APP都自带点击音效,那么如何简单的来实现这一效果,这里需要使用到的一个概念叫做SoundPool,这个类主要用于播放一些比较小的音频文件,因为比较方便,通常用在游戏里比较多。 代码 闲话不多说,我们现在需要做一个功能,就是点击某一按钮的时候同时播

  • 问题内容: 将html标记中的标准重构为侦听器,我的代码面临问题: 当单击元素时,假定单击的是循环中的最后一个索引,例如Lookslike,仅填充了此循环中的最后一个元素,循环初始化看起来正确,为什么会这样呢? 问题答案: 您需要将事件侦听器的分配包装在闭包中,例如: