1. 程式人生 > >【周總結】開發中遇到的小知識點(2019.01.14-2019.01.19)

【周總結】開發中遇到的小知識點(2019.01.14-2019.01.19)

span 網絡 什麽 圖片加載 蘋果 一道 使用 自己 問題

本周還是比較輕松的,小程序開發也接近了尾聲,就是一些簡單的修改了。我也就有了時間來回歸老本行,重寫iOS。這周我花了一些時間來把之前仿寫的Swift項目完成。這個應用比較簡單,但是實用點還是不少的。下面聽我一一道來。

首先是搭建框架,在之前OC中我有自己的一套框架,用起來比較順手。於是在swift中我也準備弄一套類似的框架。在最開始我失敗了。在我創建父控制器的時候,我創建新的子控制器繼承他發現不能自動生成viewdidload()方法。後來慢慢就好了,這應該是編譯器的問題。靠蘋果自己解決了。

然後是聲明一些常見的宏定義,這個就比較簡單了。只需要聲明一個文件即可,但是需要註意寫法

接下來就是重點了。由於這個項目我打算純swift編寫,於是一些之前常用的三方庫都不能使用了。我就只能在github上查找一些比較好用的Swift庫。

pod Alamofire
pod Kingfisher
pod "ESTabBarController-swift"
pod GTMRefresh
pod SnapKit
pod SwiftyJSON
pod XHToastSwift
pod JXPhotoBrowser

這裏面涵蓋了網絡請求、圖片加載、下拉刷新、數據存儲、頁面創建、圖片查看等等常見功能,基本上常見APP上的功能都可以靠它們實現。使用方法我就不在這裏貼出了。可以去網上查找,也可以去我的github上下載我的項目。

在這個項目中我使用了tableview和collectionView這些常見列表,進行了數據存儲、加載查看保存圖片,網絡請求、數據解析。在開發中也遇到了一些困難。在下面我就把這些問題和解決方法一一列出。

1.navigation添加搜索框

navigationItem的titleView不能直接設置成searchbar。

原因如下,如果設置成searchbar設置frame之類的會變形,且不好監控。這時候我們可以先設置一個UIView,在UIView上添加searchbar,然後後UIView設置為titleView。

2.navigation添加搜索框取消第一響應

這個就是我自己的問題了。是我自己開始沒考慮對方向。我在父控制器中添加了點擊手勢,再點擊的時候取消第一響應。

self.view.endEditing(true)

可是我在這裏失敗了,我開始沒想到為什麽,於是我在viewWillDisappear()中也寫了上面的代碼,還是不行。

最後我終於想到了為什麽。self.view不包括導航欄

override func endEditingAction() {
        self.view.endEditing(true)
        self.navSearchBar.resignFirstResponder()
        // 或者 self.navSearchBar.endEditing(true)
    }

3.設置edgesForExtendedLayout

在oc中我一般把這個設置為none來使坐標原點從(0,0)變到(0,64)。於是在父控制器中我也就寫了這個,結果坐標原點從(0,64)變到了(0,128)。

下面我寫幾個比較好的博客,如果你這個理解不清楚的可以看一下

參考文檔:博客一、博客二

【周總結】開發中遇到的小知識點(2019.01.14-2019.01.19)