Swift 学习 用 swift 调用 oc
开发过程中 很可能 把swift不成熟的地方用成熟的oc 代码来弥补一下 , 下面简单来学习一下,我也是照着视频 学习的 卖弄谈不上 就是一次学习笔记, 具体问题还是具体分析吧.
需求 给展出出来的的图片 添加触摸点击响应事件
实施方式:把这个 有触摸事件的UIImageView(OFImageView) 用 OC 写成一个对象 然后用swift 去调用
1,第一次创建 OFImageView 时候 会生成一个XXXX-Bridging-Header.h 文件 查了好多资料解释说 这个 桥梁头文件里
是用来 :
import 所有Swift需要调用OC的类 的那个库用到的头文件
swift 需要的头文件 才写在这 不是 oc头文件都要写在这
当前这个demo 没有过多的需求 暂时 只添加
"#import "OFImageView.h"
2,
#import <UIKit/UIKit.h>
@interface OFImageView : UIImageView{
id _target;
SEL _sel;
}
- (void)test;
//
- (void)addtarget:(id)target withSelector:(SEL)sel; //添加了点击事件给这个图片
@end
#import "OFImageView.h"
@implementation OFImageView
- (void)addtarget:(id)target withSelector:(SEL)sel
{
_target = target;
_sel = sel;
self.userInteractionEnabled = YES;
}
- (void)test
{
NSLog(@"print test");
}
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
if(_target){
[_target performSelector:_sel withObject:self afterDelay:0];//触发这个事件
}
}
@end
调用

效果上图片:

要想让 这个图片点击起来有效果 像按钮一样 就拓展一下 touch方法 即可 此处不赘述
分享一篇好文 关于 touch的 " iOS中的触摸事件和手势处理 "
http://my.oschina.net/aofe/blog/268749
Swift 学习 用 swift 调用 oc的更多相关文章
- 【Swift学习】Swift编程之旅---闭包(十一)
闭包是可以在代码中被传递和使用的自包含功能模块,它很像c和oc中的block,和.net中的lambdasbas表达式. 闭包可以捕获和存储其所在上下文中任意常量和变量的引用. 包裹着这些常量和变量的 ...
- swift学习笔记 - swift中常用关键字
swift中常用关键字 **用作声明的关键字: ** class.deinit.enum.extension.func.import.init.let.protocol.static.struct.s ...
- 【Swift学习】Swift编程之旅---可选链(二十一)
可选链Optional Chaining是一种可以在当前值可能为nil的可选值上请求和调用属性.方法及下标的方法.如果可选值有值,那么调用就会成功:如果可选值是nil,那么调用将返回nil.多个调用可 ...
- 【Swift学习】Swift编程之旅---ARC(二十)
Swift使用自动引用计数(ARC)来跟踪并管理应用使用的内存.大部分情况下,这意味着在Swift语言中,内存管理"仍然工作",不需要自己去考虑内存管理的事情.当实例不再被使用时, ...
- 【Swift学习】Swift编程之旅---析构方法(十九)
在一个类的实例内存被释放之前,析构方法被立即调用.使用deinit关键字来声明析构方法,类似于构造方法用init来声明.析构方法只适用于类类型. 析构方法原理 Swift会自动释放不再需要的实例以 ...
- 【Swift学习】Swift编程之旅---构造方法(十八)
初始化是为了使用某个类.结构体或枚举类型的实例而进行的准备过程.这个过程包括为每个存储的属性设置一个初始值,然后执行新实例所需的任何其他设置或初始化. 初始化是通过定义构造器(Initialize ...
- 【Swift学习】Swift编程之旅---继承(十七)
在 Swift 中,继承是区分「类」与其它类型的一个基本特征.swift不支持多重继承.类可以调用和访问超类的方法,属性和subscripts下标,并且可以重写(override)这些方法,属性和附属 ...
- 【Swift学习】Swift编程之旅---方法(十五)
在Swift中结构体和枚举也能够定义方法,而在 Objective-C 中,类是唯一能定义方法的类型. 实例方法 实例方法是属于某个特定类.结构体或者枚举类型实例的方法,实例方法提供访问和修改实例属性 ...
- 【Swift学习】Swift编程之旅---函数(十)
函数是一组用于执行特定任务的独立的代码段,你用一个名字来标识函数,这个名字是用来“调用”函数来执行它的任务. swift统一函数的语法具有足够的灵活性来表达任何一个简单的不带参数的名称与本地和外部的每 ...
随机推荐
- [已解决]window下Can't connect to MySQL server on 'localhost' (10061)与无法启动MYSQL服务”1067 进程意外终止”
查了一圈,发现都解决不了我的问题,查了 window 系统日志,提示缺少了某些文件,文件怎么丢的我也不知道,以下是解决办法. -- 我的 mysql 版本为 5.6.x 压缩包版本,我的 mysql ...
- 第一百九十一节,jQuery EasyUI 入门
jQuery EasyUI 入门 学习要点: 1.什么是 jQuery EasyUI 2.学习 jQuery EasyUI 的条件 3.jQuery EasyUI 的功能和优势 4.其他的 UI 插件 ...
- selenium + js 处理窗口
1.隐藏页面的广告窗口 document.getElementById("top_left").style.display="none"; 2.隐藏控件点击 d ...
- websocket数据流解析
ceilometer获取数据暂时先不做解答,本篇注重websocket解决浏览器与openstack组件之间的实时状态更新. 大致流程如下: nginx配置的反向代理如下: /etc/nginx/ng ...
- Intent跳转系统的应用
1.从google搜索内容 Intent intent = new Intent(); intent.setAction(Intent.ACTION_WEB_SEARCH); int ...
- Android WebView ScrollBar设置
WebView wv; wv.setVerticalScrollBarEnabled(false); 取消Vertical ScrollBar显示 wv.setHorizontalScrollBar ...
- Laravel5.1 Middleware中间件(初级)
中间件?什么鬼? 大家第一次接触这个词都会有这么个疑问,但它其实没那么神秘. 一句话就可以解释它:过滤HTTP请求专用机制. 为什么要使用中间件? 过滤HTTP请求是可以写在别的地方,比如说控制器中 ...
- Linux之(Git)服务之windows配置
设置你自己的昵称与email设置本地机器默认commit的昵称与Email. 请使用有意义的名字与email. git config --global user.name "syavingc ...
- PHP输出语句大杂烩
一 echo echo() 实际上不是一个函数,是php语句,因此您无需对其使用括号.不过,如果您希望向 echo() 传递一个以上的参数,那么使用括号会发生解析错误.而且echo是返回void的,并 ...
- 【BZOJ1803】Spoj1487 Query on a tree III 主席树+DFS序
[BZOJ1803]Spoj1487 Query on a tree III Description You are given a node-labeled rooted tree with n n ...