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

//  Created By 郭仔  2015年04月16日21:50:33

眼睛有点痛,视力也在急速下降,心灵之窗,注意保护!

================================================

耦合是衡量?一个程序写的好坏的标准之?一,

耦合是衡量模块与模块之间关联程度的指标

“?高内聚,低耦合”是?面向对象编程的核⼼心思想;

================

设计模式思想很重要的

==================

target/action设计模式:

MyView:

{
    // 保存对象
    id _target;
    //保存方法
    SEL _action;
}

// 给实例变量 _target 和 _action 赋值
- (void)addTarget:(id)target action:(SEL)action;
-(void)addTarget:(id)target action:(SEL)action
{
    _target = target;
    _action = action;
}

对应触摸事件响应中的调用:

[_target performSelector:_action withObject:self.bView];

对应的controller:

[myView addTarget:self action:@selector(changeColorAndPosition:)];

并实现该方法。

============================================

代理设计模式思想:

代理设计模式就是先定义代理,然后view中定义代理的类属性,然后cotroller遵循该协议实现协议中方法

并且把cotroller自身设置成代理。

@property (nonatomic,assign)id<MyViewDelegate>delegate;

============================================

手势识别器:

手势:有规律的触摸。

手势识别器分七大类:

下面实现捏合手势:

    // 握<pre name="code" class="objc">//    UIPinchGestureRecognizer * pinch = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinch:)];
//    // 这里必须注意是self.view而不是self.redView
//    [self.view addGestureRecognizer:pinch];
- (void)pinch:(UIPinchGestureRecognizer *)pincGest
{
    self.redView.transform = CGAffineTransformMakeScale(pincGest.scale, pincGest.scale);

    NSLog(@"握合手势");
}
				
时间: 2025-01-02 15:09:18

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

UI基础:target...action设计模式,手势识别器.UIimageview

使用target..action和delegate设计模式可以实现解耦.使代码更加优化. 手势识别器: 手势识别器:是对触摸事件做了封装,无需自己去判断某个手势是否触发,手势识别器本身起到了识别作用,所在我们可以把重心放在识别之后该去做什么操作上面.很方便. 手势识别器是iOS中比较抽象的一个类,用于识别一个手势,所谓的手势:有规律的触摸. 手势识别器有7个子类: 分别是:轻怕手势,轻移手势,清扫手势,缩放手势,旋转手势,长按手势,以及屏幕边缘平移手势. 一旦指定的手势别识别了,就可以执行自定义

UI 04 target...action 设计模式

"高内聚,低耦合"是面向对象编程的核心思想. 使用 target-action 实现解耦. 需要目标去执行一个动作的地方. 例如, 定义一个继承于UIView 的MyButton 类, 让他能够有Button的点击方法. 代码如下: Mybutton.h: #import <UIKit/UIKit.h> @interface Mybutton : UIView //1.写一个自定义方法,把目标和对应动作传过来. - (void)addNewTarget:(id)target

自学iOS开发小功能之五:代理设计模式以及书写规范

一.基本概念 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的:设计模式使代码编制真正工程化:设计模式是软件工程的基石脉络,如同大厦的结构一样. 代理设计模式:我们买电饭锅之类的,不会亲自到厂家去买,而是在商超等地方购买,而商超就是厂家的代理 应用场合:1.对象B想监听对象A的行为,让对象B成为对象A的代理   2.对象A

【设计模式】代理设计模式

什么是代理设计模式 西门庆想找潘金莲啪啪啪(我淫荡的笑了),潘金莲是女的啊,总不能直接说come on baby吧,那她跟西门庆说,你去找王妈妈吧!王妈妈会安排一切的,此时王媒婆就是潘金莲的代理,西门庆以后想要啪啪啪,直接告诉王媒婆就行了. 程序表现 先定义一个接口 代理者和被代理者都要实现这个接口 public interface Women { //啪啪啪方法 public void papapa(); } 定义潘金莲 public class PanJinLian implements W

设计模式(22)-----代理设计模式-----静态代理

一:用继承实现静态代理 1 package com.DesignPatterns.al.Dynamic1; 2 3 public interface Moveable { 4 public void move(); 5 } package com.DesignPatterns.al.Dynamic1; import java.util.Random; public class Tank implements Moveable { @Override public void move() { Sy

设计模式之-------代理设计模式

<?php /** **代理模式Proxy: *********/ abstract class Person{ abstract public function action(); } class RealPerson extends Person{ public function action(){ echo 'RealPerson'; } } class ProxyPerson extends Person{ private $_realsubject = NULL; public fun

设计模式(23)-----代理设计模式-----动态代理

一:自己手写动态代理 1.1,把一串静态的字符串(代理类)加载输出,编译,加载到内存,并且反射获取这个对象 public interface Moveable { public void move(); } 1 package com.DesignPatterns.al.Dynamic5; 2 3 import java.util.Random; 4 5 public class Tank implements Moveable { 6 7 @Override 8 public void mov

java设计模式之代理设计模式(Proxy)

一个简单Proxy代理模式范例 interface Subject{ //定义核心主题所要完成的功能 public void make(); } class RealSubject implements Subject{ public void make(){ System.out.println("核心主题");//核心主要只需要完成核心步骤,其他步骤交给代理类完成 } } class ProxySubject implements Subject{ private Subject

写一个单态设计模式、一个工厂设计模式、代理设计模式

单态: package TKaoShi; public class DanTaiPerson { private static DanTaiPerson dtp; private String name; private char sex; private DanTaiPerson(){ } private DanTaiPerson(String name,char sex){ this.name=name; this.sex=sex; } public static DanTaiPerson