iOS中 target/action 设计模式

转载 2015年11月21日 10:03:53
耦合是衡量一个程序写的好坏的标准之一
“⾼内聚,低耦合”是面向对象编程的核心思想。
target/action 设计模式
使用target…action 实现解耦 降低耦合度
内三:

.h文件

//1: 声明两个实例变量 分别为记录执行者(target),方法(action)

@interface TouchView : UIView
{
    id _target; //方法执行者
    SEL _action; // 方法
}
//2: 通过方法 addTarget: action获取外部的执行者和方法
//获取 外部的执行者 以及 执行方法

-(void)addTarget:(id)target action:(SEL)action;
.m文件
//3: 在某个时机,让执行者执行方法

-(void)addTarget:(id)target action:(SEL)action
{
    //记录传入的执行者 和 执行方法
    _target = target;
    _action = action;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    //让方法执行者 执行方法  self就是视图本身
    [_target performSelector:_action withObject:self];
}
外三:
在控制器里面
1:创建视图touchView1 touchView2 touchView3
2:添加点击事件

    [touchView1 addTarget:self action:@selector(changeColor:)];
    [touchView2 addTarget:self action:@selector(changePosist:)];
    [touchView3 addTarget:self action:@selector(changeSize:)];
3:实现各个的事件方法

-(void)changeColor:(TouchView *)touchVIEW
{
    touchVIEW.backgroundColor = [UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0  blue:arc4random()%256/255.0  alpha:1.0];

}
-(void)changePosist:(TouchView *)touchVIEW
{
    touchVIEW.center= CGPointMake(arc4random()%(325 - 100 +1)+100, arc4random()%(400-100+1)+100);
}
-(void)changeSize:(TouchView *)touchVIEW
{
   touchVIEW.bounds = CGRectMake(0, 0, arc4random()%(275 - 100 +1)+100, arc4random()%(200-100+1)+100);
}

相关文章推荐

ios开发中的基本设计模式(代理,观察者,MVC,单例,策略,工厂,MVVM,原型,Target-Action,通知(notification)机制)

(一)代理模式
 应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现。
 优势:解耦合
敏捷原则:开放-封闭原则
实例:tableview的 数据源delegate,通...

iOS设计模式之Target-Action

目标-行为(Target-Action)模式 (目的在于让代码解耦合,使代码与代码之间关联性降低,便于后期开发维护) Target-action----这个设计模式用按钮,等控件把用户的交互变成...
  • MHTios
  • MHTios
  • 2014年08月30日 20:48
  • 853

target/action设计模式

1.target/actinon(目标行为)

UI阶段的 Target/Action设计模式

问题:我怎么实现通过点击,一个UIImageView的对象,实现相应的操作,这里以更换图片为例思路一:仿照UIButton的target/action设计模式 (MFC 手动管理内存)创建一个类继承...

target - action 设计模式

#import @interface AppDelegate : UIResponder @property (strong, nonatomic) UIWindow *windo...
  • Tbryant
  • Tbryant
  • 2015年08月26日 22:08
  • 76

target/action 设计模式简单使用

Target-Action模式是ObjC里非常常见的对象之间方法调用的方式,不过ObjC把方法调用叫做Send Message. 一帮情况在和UI打交道时候处理各种GUI上的事件会利用到这种模式...

UI开发----target/action设计模式和代理设计模式以及手势识别器

//  Created By 郭仔  2015年04月16日21:50:33 眼睛有点痛,视力也在急速下降,心灵之窗,注意保护! ===================================...

UIday05:target/action设计模式 代理设计模式 UIImageView ⼿势识别器

target/action设计模式 代理设计模式 UIImageView ⼿势识别器

target --action设计模式,以及delegate设计模式

一.target --action设计模式 1.创建视图控制器,在视图控制器.m文件中,创建CustomView (UIView的子类)的对象 CustomView *blueView = [[Cus...

iOS 开发之Target-action模式

Target-action:目标-动作模式,它贯穿于iOS开发始终。但是对于初学者来说,还是被这种模式搞得一头雾水。 其实Target-action模式很简单,就是当某个事件发生时,调用那个对象...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS中 target/action 设计模式
举报原因:
原因补充:

(最多只允许输入30个字)