美文网首页
自定义XCode的SwiftUI View模板(.xctempl

自定义XCode的SwiftUI View模板(.xctempl

作者: _清墨 | 来源:发表于2023-09-11 16:47 被阅读0次

关于自定义XCode内UIKit相关的文件模板,网上已有很多的教程,这里来介绍下对于SwiftUI View的自定义模板创建。

一、分析创建模板

1.下图为我们创建模板的展示,iOS下Source还是User Interface,User Interface下SwiftUI View还是我自定义的PSCustomScreen

图1.png 2.查看模版路径具体分析
路径:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates
图2.png
从上图我们可以看到,模板Templates分为文件模板和项目模板,我们再去到后面的User Interface文件夹里,我们可以看到如下,他们分别与图1 User Interface的模板相对应: 图3.png 同样的,我们去看另外的文件夹,他们的.xctemplate也与我们创建文件时的类型相对应。

二、实现自定义SwiftUI View模板

根据图一,我们知道SwiftUI View模板属于iOS下的User Interface,所以我们自定义的SwiftUI View模板也放到iOS下的User Interface里。
在实现之前我们分析下要怎么做:

1.查看User Interface下别的模板是怎么做的 image.png
image.png image.png image.png 注:
红框里的.xib和.storybord是最终生成的文件
两个png是模板上展示的icon
.plist是模板配置文件
2.我要怎么做
很明显:
SwiftUI View生成出来是个.swift文件;
icon我们可以自己定义;
.plist我们可以直接复制,然后修改其中的MainTemplateFile后对应的值由.xib变成.swift即可。
image.png

好,那咱们开始制作:

a.复制View.xctemplate文件夹,并放到桌面
b.删除文件夹里的.xib文件
c.去iOS/Source/Cocoa Touch Class.xctemplate/UIViewSwift下复制'FILEBASENAME.swift'文件

image.png image.png d.粘贴到我们桌面的View.xctemplate文件内
e.修改FILEBASENAME.swift里的内容
原本的因为是UIView,是UIKit框架,所以import UIKit,然后内容是class相关的
image.png 我们是SwiftUI View,需要import SwiftUI,然后内容是struct相关,具体如下
image.png 这个例子是定义了Properties书写的位置、子视图书写的位置、一般类型的方法书写的位置、事件流转方法书写的位置和最后的Previews。
f.保存以上内容,将View.xctemplate命名成你想要的名字
g.将View.xctemplate命名后的文件放到User Interface下
image.png h.这时候我们新建文件,就会出现我们自定义的模板(没有可以重启XCode再试试) image.png i.选择自定义模板创建文件,最终生成的.swift文件如下
image.png

三、分析下我们做了什么

//___FILEHEADER___

import SwiftUI

struct ___FILEBASENAMEASIDENTIFIER___: View {
    // MARK: - Properties

    var body: some View {
        mainView
    }
}

// MARK: - Subviews
extension ___FILEBASENAMEASIDENTIFIER___ {
    @ViewBuilder var mainView: some View {
        VStack {
            
        }
    }
}

// MARK: - Normal Func
extension ___FILEBASENAMEASIDENTIFIER___ {
    
}

// MARK: - Event Func
extension ___FILEBASENAMEASIDENTIFIER___ {
    
}

#if DEBUG
struct ___FILEBASENAMEASIDENTIFIER____Previews: PreviewProvider {
    static var previews: some View {
        ___FILEBASENAMEASIDENTIFIER___()
    }
}
#endif

___FILEBASENAMEASIDENTIFIER___是一个宏,代表我们自己的命名

其他的宏:
___PROJECTNAME___:工程名
___FILENAME___:包含后缀的文件名
___FILEBASENAME___ : 文件名
___FILEBASENAMEASIDENTIFIER___ :不包含后缀的c格式文件名
___VARIABLE_cocoaTouchSubclass___:继承的父类名字
___FULLUSERNAME___:用户名
___ORGANIZATIONNAME___:公司名
___COPYRIGHT___:版权说明
___DATE___:当前日期
___TIME___:当前时间
___YEAR___:当前年
___FILEHEADER___:默认类的头文件
ok,以上完成了我们所要的模板,也分析了我们为了这个模板做了什么,为什么这样做,希望对大家有所帮助。

相关文章

网友评论

      本文标题:自定义XCode的SwiftUI View模板(.xctempl

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