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);
}

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

一.target --action设计模式 1.创建视图控制器,在视图控制器.m文件中,创建CustomView (UIView的子类)的对象 CustomView *blueView = [[Cus...
  • xiaomeng_os
  • xiaomeng_os
  • 2014年08月26日 20:13
  • 333

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

一.target --action设计模式 1.创建视图控制器,在视图控制器.m文件中,创建CustomView (UIView的子类)的对象 CustomView *blue...
  • xueweichao_1989
  • xueweichao_1989
  • 2014年09月29日 14:54
  • 158

MVC设计模式:Struts的Action思想

Struts实质就是MVC模式的体现;因为它强制把程序分成三层结构,大大提高了灵活性,使得程序更加利于开发、扩展和维护。 MVC包含三个基础部分:Model、View和Controller,这三...
  • qq_23865789
  • qq_23865789
  • 2016年07月16日 16:35
  • 1173

iOS开发之Target-action模式(点击按钮,滑动滑块等)

Target-action:目标-动作模式,它贯穿于iOS开发始终。但是对于初学者来说,还是被这种模式搞得一头雾水。 其实Target-action模式很简单,就是当某个事件发生时,调用那个对象中的...
  • humingtao2013
  • humingtao2013
  • 2014年03月19日 15:13
  • 1433

target/action 设计模式简单使用

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

UI阶段的 Target/Action设计模式

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

IOS开发中的几种设计模式介绍

ios开发学习中,经常弄不清楚ios的开发模式,今天我们就来进行简单的总结和探讨~ (一)代理模式 应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现。 优势:解耦合...
  • liwei3gjob
  • liwei3gjob
  • 2013年05月14日 17:42
  • 58239

iOS8之后创建Action Extension应用扩展

对于Action Extension,可能是扩展性最高Extension了,试想我们可以在其他应用中将信息通过Action Extension传递譬如选中的文字到另一个APP,是不是很爽,举个例子: ...
  • u010731949
  • u010731949
  • 2016年05月19日 19:51
  • 1497

Swing——动作(Action)

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41258997 用同一个动作响应按钮、菜单项或击键的方式:...
  • pistolove
  • pistolove
  • 2014年11月18日 23:01
  • 1756

action重定向到frameset页面指定target属性

struts2使用action重定向到frameset页面,如何使用target属性指定页面输出方式
  • emptylee
  • emptylee
  • 2017年02月16日 00:50
  • 1239
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS中 target/action 设计模式
举报原因:
原因补充:

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