初学swift,找来一个项目拿来练手。下面是几个效果图->
项目源码☞传送门https://github.com/SPIREJ/XSLC_Swift-
首页:
- 首页主要由banner、collectionView、tableView 组成
- 理财页
- 理财列表页、计划详情页以及键盘等
- 我的页
- collectionView 、webView
- 初学者,UI就这么多,就说说遇到的两个坑吧~
第一个坑,使用pod建立工程时终端出错
pod[!] Unable to add a source with url `https://github.com/CocoaPods/Specs.git` named `master`.You can
try adding it manually in `~/.cocoapods/repos` or via `pod repo add`.
解决方案:终端输入以下命令
pod repo add master https://github.com/CocoaPods/Specs.git
然后提示执行
pod setup
如果出现
pod[!] The `master` repo is not a git repo.
进入/users/你的用户名/.cocoapods/repos,删除master文件夹然后执行,如我这么进入
cd ~/.cocoapods/repos/
master文件夹是个目录,删除时需要连下面的分支一起删掉
rm -rf ~/.cocoapods/repos/master
删除master之后,再pod setup
,之后配置好你的Podfile
,最后pod install
就成功的建立了 同名的.xcworkspace
工程了
pod setup
#先 cd 到你工程的目录
pod init
open -a Xcode Podfile
#添加你需要的三方库
pod install
- 还有以下情况:
如果是安装多个Xcdoe,还需要选择Xcode的路径,后面是你自己的Xcode路径,显示Xcode包内容可查看
sudo xcode-select -switch /Applications/Xcode.app/
在终端里输入下方命令可以知道Xcode的路径:
xcode-select -p
第二个坑,加载基于XIB创建的自定义控件时报错
-
我像写OC的基于XIB自定义控件一样,创建一个基于
UIView
的新类XSCustomView
-
创建一个同名的
XIB
文件
-
像OC一样给文件指定类
然后加载View就会出错
fatal error: init(coder:) has not been implemented: file
/路径/XXX.swift, line 43
(lldb)
-
解决办法,查了好久资料,找到解决办法
swift指定类与OC略有不同,swift需要的是File's Owner
归属于咱们定义的哪个类,而下面的View是不需要指定类的
最后咱们从XIB加载View即可,如在custom.swift文件里有如下代码
class XSCustomView: UIView {
var contentView:UIView!
override func awakeFromNib() {
super.awakeFromNib()
}
override init(frame: CGRect) {
super.init(frame: frame)
contentView = loadFromNib()
addSubview(contentView)
}
func loadFromNib() -> UIView {
return Bundle.main.loadNibNamed("XSCustomView", owner: nil, options: nil)?.first as! UIView
}
override func layoutSubviews() {
contentView.frame = bounds
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
fatalError("init(coder:) has not been implemented")
}
}