美文网首页
Swift调用Objective-C编写的代码(颜色选择器KKC

Swift调用Objective-C编写的代码(颜色选择器KKC

作者: 小驴拉磨 | 来源:发表于2020-06-30 18:19 被阅读0次

    (本文代码已升级至Swift5)

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

    效果展示:

    image.png

    实现步骤:

    1、首先在项目里导入 KKColorListPicker 的源码(整个文件夹,在项目上有键“Add Files To XXX”)或者直接拖入项目.
    image.png
    2、手工创建桥接头文件 bridge.h 来包含需要引用的 Objective-C 头文件,内容如下:
    #import "KKColorListViewController.h"
    #import "KKColor.h"
    
    3、选择项目,在 Build Setting -> Swift Compiler-Code generation -> Objective-C Bridging Header 设置里添加 bridge.h,如下图所示:
    image.png
    4、页面使用样例(ViewController.swift)
    import UIKit
    
    class ViewController: UIViewController, KKColorListViewControllerDelegate {
        
        //Object-C编写的颜色选择器视图
        var viewColor:KKColorListViewController!
    
        override func viewDidLoad()
        {
            super.viewDidLoad()
            //初始化颜色选择面板
            //这个颜色选择面板是用OC开发,我们导入头文件后就能在Swift里调用了
            viewColor = KKColorListViewController(schemeType:KKColorsSchemeType.crayola)
            //此类实现了颜色选择面板的代理协议,并重载了选择颜色和关闭2个回调函数
            viewColor.delegate = self
             
            //创建一个按钮
            let button:UIButton = UIButton(type: .system)
            //设置按钮位置和大小
            button.frame = CGRect(x:10, y:50, width:100, height:30)
            //设置按钮文字
            button.setTitle("选择背景色", for: .normal)
            button.addTarget(self, action: #selector(selColor(_:)),
                             for: .touchUpInside)
            self.view.addSubview(button);
        }
         
        //点击选择背景色的事件操作
        @objc func selColor(_ button:UIButton)
        {
            //显示颜色选择面板
            self.present(viewColor, animated: true, completion:nil)
        }
         
        //选择颜色后回调
        func colorListController(_ controller:KKColorListViewController,
                                 didSelect color:KKColor)
        {
            //关闭颜色选择器视图
            viewColor.dismiss(animated: true, completion:nil)
            //设置当前视图的背景颜色为用户选择的颜色
            self.view.backgroundColor = color.uiColor()
        }
         
        //用户在颜色选择器视图里点击了关闭
        func colorListPickerDidComplete(_ controller:KKColorListViewController)
        {
            //只需要关闭颜色选择器视图
            viewColor.dismiss(animated: true, completion:nil)
        }
    }
    

    原文出自:www.hangge.com 转载请保留原文链接:https://www.hangge.com/blog/cache/detail_642.html

    相关文章

      网友评论

          本文标题:Swift调用Objective-C编写的代码(颜色选择器KKC

          本文链接:https://www.haomeiwen.com/subject/vbaxqktx.html