Swift与OC混编_Swift使用OC

Swift调用OC

将 Objective-C 导入 Swift
要在同一个 app target 中导入 Objective-C 文件供 Swift 使用,你需要依赖 Objective-C的桥接头文件(Objective-C bridging header)来暴露给 Swift。当你添加 Swift 文件到现有的 Objective-C 应用时,Xcode 会自动创建这些头文件,反之亦然。
我的代码是Swift


Paste_Image.png

点击Create Bridging Header会自动生成一个和你项目名一样的文件

Paste_Image.png

请把你想要在Swift调用的OC的文件import到.h文件中

Paste_Image.png

然后还需要设置文件

Paste_Image.png

Swift中使用oc代码的方式:

  let customViewOC = ocCustomShapeImageView.init(frame: CGRectMake(200, 70, 150, 120))
  customViewOC.right = CGRectGetWidth(UIScreen.mainScreen().bounds);
  customViewOC.top = 120;
  customViewOC.image = UIImage.init(named: "image")
  self.view.addSubview(customViewOC)

OC代码

 @interface ocCustomShapeImageView()
{
    CAShapeLayer *_maskLayer;
}
@end

@implementation ocCustomShapeImageView

- (instancetype)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
    
        [self PictureShape];
    }
    return self;
}

//使用图片来遮罩
- (void)PictureShape
{
    _maskLayer = [CAShapeLayer layer];
    _maskLayer.frame = self.bounds;
    _maskLayer.contentsScale = [UIScreen mainScreen].scale;
    _maskLayer.contentsCenter = CGRectMake(0.5, 0.5, 0.1, 0.1);
    _maskLayer.contents = (id)[UIImage imageNamed:@"communication_chat_right.png"].CGImage;
    [self.layer setMask:_maskLayer];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 利用runtime特性实现iOS项目的组件化开发,是由@casatwy大神提出来的,在他的博客中具体介绍...
    Mr杰杰阅读 1,645评论 2 9
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,261评论 4 61
  • 前言: Swift语言出来后,可能新的项目直接使用Swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好...
    疯狂的电脑阅读 2,356评论 0 9
  • 如果瞬间指的是时间轴上的一个点,而不是一个段的话,那么照片抓拍画面,严格意义上来讲,是一组四维的向量所代表的色彩集...
    奥德李阅读 444评论 0 1
  • 使用频率越高的东西,越要舍得花钱。
    coco吖阅读 186评论 0 0