Swift调用Objective-C编写的代码(颜色选择器KKColorListPicker调用)
在Swift项目中,我们可以导入任意用Objective-C写的框架,代码库等。下面以Swift调用Objective-C编写的颜色选择器KKColorListPicker为例。

|
1
2
3
|
//KKColorsSchemeType.h已经包含在KKColorListViewController.h#import "KKColorListViewController.h"#import "KKColor.h" |
3,选择项目,在Build Setting -> Swift Compiler-Code generation -> Objective-C Bridging Header设置里添加bridge.h,如下图所示:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
import UIKitclass ViewController: UIViewController, KKColorListViewControllerDelegate { //Object-C编写的颜色选择器视图 var viewColor:KKColorListViewController! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //初始化颜色选择面板 //这个颜色选择面板是用OC开发,我们导入头文件后就能在Swift里调用了 viewColor = KKColorListViewController(schemeType:KKColorsSchemeType.Crayola) //此类实现了颜色选择面板的代理协议,并重载了选择颜色和关闭2个回调函数 viewColor.delegate = self //创建一个按钮 var button:UIButton = UIButton.buttonWithType(UIButtonType.System) as! UIButton; //设置按钮位置和大小 button.frame=CGRectMake(10, 50, 100, 30); //设置按钮文字 button.setTitle("选择背景色", forState:UIControlState.Normal) button.addTarget(self,action:Selector("selColor:"),forControlEvents:UIControlEvents.TouchUpInside) self.view.addSubview(button); } //点击选择背景色的事件操作 func selColor(sender: AnyObject) { //显示颜色选择面板 self.presentViewController(viewColor, animated: true, completion:nil) } //选择颜色后回调 func colorListController(controller:KKColorListViewController, didSelectColor color:KKColor) { //关闭颜色选择器视图 viewColor.dismissViewControllerAnimated(true, completion:nil) //设置当前视图的背景颜色为用户选择的颜色 self.view.backgroundColor = color.uiColor() } //用户在颜色选择器视图里点击了关闭 func colorListPickerDidComplete(controller:KKColorListViewController) { //只需要关闭颜色选择器视图 viewColor.dismissViewControllerAnimated(true, completion:nil) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }} |
源码下载:
Test6.zip
Swift调用Objective-C编写的代码(颜色选择器KKColorListPicker调用)的更多相关文章
- 第一章 熟悉Objective -C 编写高质量iOS与OS X代码的52 个有效方法
第一章 熟悉Objective -C 编写高质量iOS与OS X代码的52 个有效方法 第一条: 了解Objective-C 语言的起源 关键区别在于 :使用消息结构的语言,其运行时所应执行 ...
- 基于CkEditor实现.net在线开发之路(2)编写C#代码,怎么调用它。
上一章简约的介绍了CkEditor编辑器,可以编辑js逻辑代码,css,html,C#代码,这章我根据实际例子,讲解怎么编写C#代码和怎么调用它. 大家都还记得刚刚接触程序编时的hello Word吧 ...
- Jmeter自定义编写Java代码调用socket通信
一.前言 最近需要测试一款手机游戏的性能,找不到啥录制脚本的工具,然后,另外想办法.性能测试实际上就是对服务器的承载能力的测试,和各种类型的手机客户端没有啥多大关系,手机再好,服务器负载不了,也不能够 ...
- Unity3D脚本调用Objective C代码实现游戏内购买
0.开篇吐槽: 一年之内从WP转到iOS,又从iOS转到U3D,真心伤不起. 1.Unity3D脚本调用OC代码的原理: 其实也没啥神秘的,因为OC是和C互通的 ,C#又可以通过DllImport的形 ...
- AppleWatch开发教程之Watch应用对象新增内容介绍以及编写运行代码
AppleWatch开发教程之Watch应用对象新增内容介绍以及编写运行代码 添加Watch应用对象时新增内容介绍 Watch应用对象添加到创建的项目中后,会包含两个部分:Watch App 和 Wa ...
- 最新的JavaScript核心语言标准——ES6,彻底改变你编写JS代码的方式!【转载+整理】
原文地址 本文内容 ECMAScript 发生了什么变化? 新标准 版本号6 兑现承诺 迭代器和for-of循环 生成器 Generators 模板字符串 不定参数和默认参数 解构 Destructu ...
- IOS-Swift、Objective-C、C++混合编程
1.Objective-C调用C++代码 后缀为m文件的是Objective-C的执行文件,而后缀为mm文件的是Objective-C++文件. 直接在Objective-C中是无法调用C++代码的, ...
- Zend Studio 12.0.2正式版发布和破解方法,zend studio 12.0.1汉化,相式设置为Dreamweaver,空格缩进为4个, 代码默认不折叠的设置,Outline中使用的图形标志,代码颜色之eot设置。
背景:zend studio 12.0.2 修复了一个12.0.1的: Fixed problem with referenced variables marked as undefined,我都说 ...
- 编写 Objective-C 代码
如果您未曾开发过 iOS 或 Mac OS X 平台的程序,那就需要开始了解它们的首要程序设计语言 Objective-C.Objective-C 并不是一种很难的语言,如果能花一点时间学习,相信您会 ...
随机推荐
- 使用java对执行命令行 或 执行bat文件
public class Hellotianhao { public static void main(String[] args) throws Exception{ System.out.prin ...
- Python 文本解析器
Python 文本解析器 一.课程介绍 本课程讲解一个使用 Python 来解析纯文本生成一个 HTML 页面的小程序. 二.相关技术 Python:一种面向对象.解释型计算机程序设计语言,用它可以做 ...
- ZOJ 3829 Known Notation 乱搞
乱搞: 1.数字的个数要比*的个数多一个,假设数字不足须要先把数字补满 2.最优的结构应该是数字都在左边,*都在右边 3.从左往右扫一遍,遇到数字+1,遇到*-1,假设当前值<1则把这个*和最后 ...
- IOS7上呈现IOS6的水滴刷新效果
IOS7上呈现IOS6的水滴刷新效果 到了IOS7 发现自带的刷新 不再是 IOS6自带的水滴效果了 你是否怀念那IOS6的效果呢? 哈哈,于是收集各方资料,整理编写一个属于自己的水滴刷新效果 ...
- windows azure 实例
public class Album : TableServiceEntity { } public class PhotoAlbumDataContext : TableServiceContext ...
- isotope/masonry 使用jQuery.sortable
function goMasonry() { // if ($container.data('masonry') != undefined) { $container.isotope('destroy ...
- static在C和C++中的用法和区别
static主要有三个作用: (1)局部静态变量 (2)外部静态变量/函数 (3)静态数据成员/成员函数 前两种C和C++都有,第三种仅在C++中有,下面分别作以下介绍: 一.局部静态变量 在C/C+ ...
- 算法-最长子序列和C/C++实现(三个复杂度)
最长子序列和的问题非常easy: 就是一个数组,求出当中当中连续的某一段和,而这一段和是全部的连续段和的最大的值.求出这个值. 先说复杂度最高的:O(n3) 直接上代码,非常easy的: // // ...
- paip.提升用户体验---c++ qt自定义窗体(1)---标题栏的绘制
源地址:http://blog.csdn.net/attilax/article/details/12343625 paip.提升用户体验---c++ qt自定义窗体(1)---标题栏的绘制 效果图: ...
- 【AllJoyn专题】基于AllJoyn和Yeelink的传感器数据上传与指令下行的研究
接触高通物联网框架AllJoyn不太久,但确是被深深地吸引了.在我看来,促进我深入学习的原因有三点:一.AllJoyn开源,对开源的软硬件总会有种莫名的喜爱,虽然或许不会都深入下去:二.顺应潮流,物联 ...