Swift的一些高階技巧

2021-08-08 16:57:11 字數 2139 閱讀 4215

我們會發現,新建乙個uiviewcontroller以後,xcode會預設提供乙個函式給你。

override func viewdidload()
這個函式就是當此viewcontroller生成了乙個新的例項的時候,就會被呼叫。

與之相對應的是乙個叫做deinit的函式。

deinit
swift中的閉包類似c++中的塊。它可以捕捉和儲存任何常數或者變數的引用。

閉包,其實就是指程式語言中能讓**呼叫已執行的函式中所定義的區域性變數。

簡單來說可以把閉包理解成保護內部變數的一種手段,也就是為函式建立乙個私有的變數的。

extension這乙個關鍵字可以幫助擴充一些類的方法。但是不可以override。

但是需要注意的是,這一功能有可能會被濫用。但是也可以幫助我們組織我們的**。

protocols有點像乙個api,他是一群方法的集合。他是一種型別。

protocols本身不可以自己實現自身,它只能夠在方法相應的類裡面實現。

一般來說是先定義好protocols,然後需要有乙個相應的類/struct來說我會來接手。最後這個類/struct必須把protocols的所有方法實現。

典型的定義如下:

protocol someprotocol: clsss, inheritedprotocol

mutating func changecolor()

}

protocol的作用在於協作。在一般的公司裡面,都會使用protocol來去定義需要的東西,告訴別人要實現什麼。

假如view需要和controller通訊,那麼可以使用delegation的方式來達到。具體的操作如下:

定義scrollview的方式是首先定義contentsize。

scrollview.contentsize = cgsize(width: 3000, height: 2000)

aerial.frame = cgrect(x: 150, y: 200, width: 2500, height: 1600)

scrollview.addsubview(aerial)

這樣一來,效果就是scrollview可以四處瀏覽這個大畫布的各個角落。

scrollview也可以zooming,以下兩個引數可以定義最大最小的限制。

scrollview.minimumzoomscale = 0.5

scrollview.maximumzoomscale = 2.0

首先新建乙個viewcontroller,用來裝載影象。

這次我們的model將會是乙個url,用來指示影象的位置。

這一次我們嘗試使用**新增subview,**如下:

private

var imageview = uiimageview()

override func viewdidload()

我們設定乙個變數給,然後每次匯入以後要設定為適配。

func fetchimage()

}}private

var image: uiimage?

}

boom!成功了!

然後我們給應用增加乙個scrollview。

在storyboard裡面新增乙個scrollview,然後拖拽到controller裡面。然後把uiimage新增成為scrollview的subview。

scrollview.addsubview(imageview)
最後一定要記得設定contentsize!

scrollview?.contentsize = imageview.frame

.size

css一些高階技巧

今天學習了一些css的高階技巧,給自己做乙個筆記。關於元素的顯示與隱藏主要是三個方法 第乙個是display設定或檢索物件是否及如何顯示。display none 隱藏物件 display block 除了轉換為塊級元素之外,同時還有顯示元素的意思。該方法最大特點是隱藏之後,不在保留位置。第二種是v...

SQL高階查詢的一些技巧

高階查詢的一些技巧 1.使用and時,盡量將很可能不為真的條件放在前面 2.使用or運算子時,盡量將最可能為真的條件放在前面 3.distinct比order by更快 select memberid from orders group by memberid select distinct mem...

Swift自學之旅一 Swift的一些基本知識

1 變數與常量 定義變數使用關鍵字 var 定義常量使用關鍵字 let 定義時,資料型別可以顯示也可以隱式 對了,等於號後面有空格 比如 var myvariable 100 var myvariable int 100 2 佔位符?格式為 變數或者常量名 比如 var name james pri...