ios sdk开发需要掌握什么(ios你在项目开发中遇到的难点)

技术IOS开发之Target-Action模式有什么用小编给大家分享一下IOS开发之Target-Action模式有什么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 该模式主要是为了减少模块之

边肖将与您分享IOS开发的目标行动模式的使用。希望大家看完这篇文章后有所收获。我们一起讨论一下吧!

这种模式主要是为了减少模块之间的代码耦合,增强模块内代码之间的内聚性。

我们来看一个例子:

:假设有这样的要求:我们可以单击视图对象来更改视图的颜色。这对于初学者来说是一件非常容易的事情,只需在这个视图类中重写3360即可。

-(void) touches began3360 (nsset *)使用event 3360 (uievent *)事件函数进行触摸,然后更改视图的背景颜色,但此时出现了新的需求,有些人在点击视图时需要更改视图的颜色,有些人在点击视图时需要更改视图的位置。为了让不同的对象执行不同的事件,在实例化视图类对象时,有必要指定对象感兴趣的事件。对于这个需求,我们可以将枚举变量定义为对象的数据成员,并在初始化过程中指定枚举值(即指定感兴趣的事件)。同时,需要用event 3360 (uievent *)事件函数重写-(void)touch began 3360(nsset *)touch,使其可以针对不同的枚举值执行不同的功能。假设我们此时点击视图对象时需要执行翻转功能,那么我们必须再次修改视图中的具体实现功能。这样代码之间的耦合性比较大,移植起来比较不方便(试想这样的场景,假设别人的app需要你写的视图类,而别人不需要你视图类中的事件方法,需要修改视图类,难免会出现一些错误)。这个问题的解决方案是Target-Action模式,直接看代码3360。

//主视图头文件

#importUIKit/UIKit.h

@ interface mainviewcontroler : uiviewcontroler

@end//主视图实现

#导入“MainViewController.h”

#导入“MyView.h”

@实现维护视图控制器

-(id)init

{

self=[super nit];

如果(自我)

{

}

returnself

}

-(无效)视图加载

{

my view * view1=[[my viewalloc]initwithframe : cgrectcmake(10,20,100,100)和target : selfandaction : @ selector(changecolor :)];

[self . viewpaddsubview : view 1];

MyView * view 2=[[myviewlock]initwithframe : cgrectcmake(10,20,100,100)和target : selfandaction : @ selector(moveframe :)];

[self . viewpaddsubview : view 2];

}

-(void)changecolor :(ui view *)a查看

{

NSLog(@ ' buttonClick ');

int end=arc 4 random()% 5;

int green=arc 4 random()% 5;

int blue=arc 4 random()% 5;

aview . background color=[uicolorborwithdred : red/255.0 green : green/255.0 blue : blue/255.0 alpha :1.0];

}

-(void)moveframe :(ui view *)aView

{

aview . frame=cgrectMake(arc 4 random()20,arc4random()H0,100,100);

}

@end//测试视图类头文件

#importUIKit/UIKit.h

@interfaceMyView:UIView

{

id _ target

SEL _ action

}

-(id)initwithframe :(CGRect)frameand target :(id)target and action :(SEL)操作;

@property(assign,readwrite,非原子)iddeledate

@end////测试视图类实现

#导入“MyView.h”

@implementationMyView

-(id)initwithframe :(CGRect)frame和target :(id)targetandaction :(SEL)操作

{

self=[superinitwithframe : frame];

如果(自我)

{

_ target=target

_ action=action

}

self . background COlOr=[UIColorBlueCOlOr];

returnself

}

-(void)touchesbegann :(NSSet *)toucheswithevent :(ui event *)事件

{

[_ targetperformselector : _ actionwithobject : self];

}

@end看完这篇文章,相信大家对“IOS开发的Target-Action模式有什么用?”想了解更多,请关注行业资讯频道,感谢阅读!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/157464.html

(0)

相关推荐

  • 春节放假几天,今年春节放假有什么安排

    技术春节放假几天,今年春节放假有什么安排谢谢邀请春节放假几天,先前安排好的节日出行在防疫要求下让道,但是我也要说出来和大家分享一下不能实现的安排。1、86岁的母亲告诉我,没有坐过白天的飞机,言下之意想坐一次!基于这个想法

    生活 2021年10月27日
  • http2的真正性能到底如何

    技术http2的真正性能到底如何http2的真正性能到底如何,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、研究目的http2的概念提出已经有相当长一

    攻略 2021年11月16日
  • 形容沙尘暴的搞笑句子,形容天气寒冷的搞笑句子

    技术形容沙尘暴的搞笑句子,形容天气寒冷的搞笑句子1.寒冷的冬日,你清早的一个微笑让我暖入心底,开始美好的一天形容沙尘暴的搞笑句子。2.北风怒号,像一匹脱缰的烈马卷着杂物在半空里肆虐,打到脸上像鞭子抽一样疼,但是你的一句话

    生活 2021年10月25日
  • 88年属,88年出生属龙,人,的性格

    技术88年属,88年出生属龙,人,的性格神话传说中那巨大、宏伟的龙使人们产生无限遐想。所以龙那神奇的品质88年属,不管虚幻与否,肯定也包含在那些出生在龙年人们的心中。在中国,龙象征着皇帝或男性,它代表着权力。在龙年出生的

    生活 2021年10月26日
  • 软件设计-迭代器模式

    技术软件设计-迭代器模式 软件设计-迭代器模式JAVA和C++常见数据结构迭代器的使用信1305班共44名同学,每名同学都有姓名,学号和年龄等属性,分别使用JAVA内置迭代器和C++中标准模板库(STL

    礼包 2021年12月14日
  • 嵌入式Linux Framebuffer怎么描点画线

    技术嵌入式Linux Framebuffer怎么描点画线这篇文章主要讲解了“嵌入式Linux Framebuffer怎么描点画线”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学

    攻略 2021年11月23日