swift入門仿寫項(xiàng)目及遇坑出坑

  • 初學(xué)swift,找來(lái)一個(gè)項(xiàng)目拿來(lái)練手。下面是幾個(gè)效果圖->
    項(xiàng)目源碼?傳送門https://github.com/SPIREJ/XSLC_Swift

  • 首頁(yè):

    • 首頁(yè)主要由banner、collectionView、tableView 組成
首頁(yè)
  • 理財(cái)頁(yè)
    • 理財(cái)列表頁(yè)、計(jì)劃詳情頁(yè)以及鍵盤等
理財(cái)
  • 我的頁(yè)
    • collectionView 、webView
我的
  • 初學(xué)者,UI就這么多,就說(shuō)說(shuō)遇到的兩個(gè)坑吧~
第一個(gè)坑,使用pod建立工程時(shí)終端出錯(cuò)
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

然后提示執(zhí)行

pod setup

如果出現(xiàn)

pod[!] The `master` repo is not a git repo.

進(jìn)入/users/你的用戶名/.cocoapods/repos,刪除master文件夾然后執(zhí)行,如我這么進(jìn)入

cd ~/.cocoapods/repos/

master文件夾是個(gè)目錄,刪除時(shí)需要連下面的分支一起刪掉

rm -rf ~/.cocoapods/repos/master

刪除master之后,再pod setup,之后配置好你的Podfile,最后pod install就成功的建立了 同名的.xcworkspace工程了

pod setup
#先 cd 到你工程的目錄
pod init
open -a Xcode Podfile
#添加你需要的三方庫(kù)
pod install
  • 還有以下情況:
    如果是安裝多個(gè)Xcdoe,還需要選擇Xcode的路徑,后面是你自己的Xcode路徑,顯示Xcode包內(nèi)容可查看
sudo xcode-select -switch /Applications/Xcode.app/

在終端里輸入下方命令可以知道Xcode的路徑:

xcode-select -p
第二個(gè)坑,加載基于XIB創(chuàng)建的自定義控件時(shí)報(bào)錯(cuò)
  • 我像寫OC的基于XIB自定義控件一樣,創(chuàng)建一個(gè)基于UIView的新類XSCustomView

    創(chuàng)建基于UIView的新類XSCustomView

  • 創(chuàng)建一個(gè)同名的XIB文件

    創(chuàng)建一個(gè)同名的XIB文件

  • 像OC一樣給文件指定類


    像OC一樣給文件連線
  • 然后加載View就會(huì)出錯(cuò)

fatal error: init(coder:) has not been implemented: file 
/路徑/XXX.swift, line 43
(lldb)
  • 解決辦法,查了好久資料,找到解決辦法
    swift指定類與OC略有不同,swift需要的是File's Owner歸屬于咱們定義的哪個(gè)類,而下面的View是不需要指定類的

    解決問(wèn)題

  • 最后咱們從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")
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,408評(píng)論 4 61
  • 隨你的心情而明媚和陰郁,是多么難過(guò)的感受?你什么時(shí)候也能體會(huì)我的感受?
    砸扁回憶閱讀 210評(píng)論 0 0
  • 1.小王。 小王說(shuō):“媽媽,涼菜里不要放麻油,會(huì)讓我頭暈。就是那種看到半透明的灰色,深一點(diǎn)的紫色,發(fā)前鼻音的字一樣...
    高小花0218閱讀 303評(píng)論 0 0
  • 回憶的雪地上 時(shí)深時(shí)淺的印跡 將感動(dòng)溫存 即使不斷拾起 春天也不會(huì)來(lái)臨
    驁沚閱讀 151評(píng)論 0 2

友情鏈接更多精彩內(nèi)容