IOS开发之功能模块–给任意的UIView添加点击事件

【Swift 2.1】为 UIView 添加点击事件和点击效果,swiftuiview

 

前言

  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
可以换成点击变更透明度。

 

2.1】为 UIView
添加点击事件和点击效果,swiftuiview 前言 UIView 不像 UIButton
加了点击事件就会有点击效果,体验要差不少,这里分别通…

 

前言:好久没写博客,今天来一波。我在实际项目开发中,会遇到这样功能需求:我已经搭好了iOS的UI界面,但是很多界面的子View用了UIView,然后这些UIView中用了UILabel和UIImageView,然后接着需求要这些View能够有点击事件,比如一点击就跳转到某个控制器。一开始懵逼了,难道我还要把他们全部改成UIButton,但是UIButton不好添加子View,难道我还要全部自定义一下UIButton,就算自定义好了,在项目已经打好的界面还是要一个个替换,多麻烦。所以就想到通过UIView拓展类别,类别中的方法提供手势点击事件的监听,通过block传递事件任务。可是类别声明的属性没用,但是没关系,只好用上runtime运行时了。

前言

 

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

代码如下:

 

UIView+AddClickedEvent.h

声明
  欢迎转载,但请保留文章原始出处:)
  博客园:
  农民伯伯:

 1 //
 2 //  UIView+AddClickedEvent.h
 3 //  AddClickedEvent
 4 //
 5 //  Created by HEYANG on 16/6/6.
 6 //  Copyright © 2016年 HeYang. All rights reserved.
 7 //
 8 //  github:https://github.com/HeYang123456789
 9 //  blog  :http://www.cnblogs.com/goodboy-heyang
10 //
11 
12 
13 #import <UIKit/UIKit.h>
14 
15 @interface UIView (AddClickedEvent)
16 
17 - (void)addClickedBlock:(void(^)(id obj))tapAction;
18 
19 @end
Copyright @ 2015-2019 ca88 版权所有
网站地图xml地图