說到Frame大家應該是很熟悉,使用程式建立畫面的時候應該常常會是用frame來建構
但說到底,frame建出來的畫面跟我想像中的畫面其實就不太一樣,搞得我每次使用frame都需要一直修正
發現其實有很好用的套件可以幫助畫面建構,即SnapKit,應該也有很多人使用過
不過使用之前要先去SPM下載SnapKit套件
說到這個,曾經我還在面試的時候,有個面試官語重心長的跟我說:「SnapKit是個好東西,如果你不會趕快去學,這個大部分人都在用」,然後就在我以為我能一親芳澤,能魚躍龍門成為工程師的時候,還是那個他,無情的打臉我,通過一封感謝信讓我知道還要學的東西還有很多。
回到主題,扯太遠去了
當今天網路不夠力,你的東西跑不出來,但你又必須給你的使用者一個交代的時候該怎麼辦
嗯,給他個空畫面打發他,請他到網路好一點的地方去重頭來過
像是這個情況,我們一般會提供給使用者一個空畫面,那麼此時空畫面的建構我們就可以使用SnapKit來處理
// 假設你已經寫了一個ErrorView的Class
lazy var errorView: ErrorView = {
let errorView = ErrorView()
view.addSubView(errorView)
// 希望使用SuperView的框架去串接
errorView.snp.constraints { make in
make.top.equalToSuperView()
make.left.equalToSuperView()
make.right.equalToSuperView()
make.bottom.equalToSuperView()
}
errorView.isHidden = true
return errorView
}()
// 當然有可以對上某個view
make.top.equalTo(self.tableView.snp.top)
// 或是加上offset,讓你有更多可以調控的範圍
make.right.equalTo(self.tableView.snp.right).offset(10)
使用這些都能快速的幫你建構出你想像中的Frame
坑:
那個語法一開始不是很能理解,看了好久,然後很容易忘記打一些字哈哈
還有記得要先加入SubView,這樣如果要使用SuperView的話才會有共同的ancestor