繼續(xù)上一篇 開始用Swift開發(fā)iOS 10 - 18 Search Bar 和 UISearchController ,這一篇使用 UIPageViewController 構(gòu)建介紹頁面,與使用 LaunchScreen.storyboard 的啟動頁不同。
成都創(chuàng)新互聯(lián)公司長期為近1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為連城企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、網(wǎng)站制作,連城網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
類似 UINavigationController , UIPageViewController 也是一種容器類型的控制器。這種容器類型的控制器是用來管理其它多個(gè)控制器的。
如果容器內(nèi)的控制器頁面元素類似(上圖就是這種情況),可以通過一個(gè)控制器重復(fù)利用。
setViewControllers 方法是設(shè)置 UIPageViewController 管理的視圖控制器。
頁面指示就是一般在頁面下用于分辨當(dāng)前是第一個(gè)頁面的幾個(gè)小點(diǎn)。
實(shí)現(xiàn) UIPageViewControllerDataSource 協(xié)議的兩個(gè)方法: presentationCount(for:) 表示總共有幾個(gè)小點(diǎn)(頁面)。
presentationIndex(for:) 表示當(dāng)前頁面的索引。
不用默認(rèn)的頁面指示,就要把上面兩個(gè)方法刪除,然后使用 UIPageControl 。
完成類似下面:
但因?yàn)橹笆抢?RestaurantTableViewController 的 viewDidAppear 方法顯示介紹頁的,而 viewDidAppear 方法是頁面顯示后就調(diào)用一下,這樣就出現(xiàn)不停進(jìn)入介紹頁。實(shí)際上只需要第一次打開app的時(shí)顯示介紹頁就可以了。
UserDefaults 是用來管理應(yīng)用和用戶相關(guān)的設(shè)置的。也就是可以用 UserDefaults 存儲一些用戶相關(guān)的少量數(shù)據(jù),比如上面的是否看過介紹頁,也就是是否點(diǎn)擊過DONE按鈕了。
UserDefaults 也是通過單例模式進(jìn)行操作的,通過類屬性 standard 獲取單例。
完成介紹頁。學(xué)習(xí)了 UIPageViewController 和 UserDefaults 。
Beginning-iOS-Programming-with-Swift
此文是學(xué)習(xí) appcode 網(wǎng)站出的一本書 《Beginning iOS 10 Programming with Swift》 的一篇記錄
swift開發(fā)ios應(yīng)用步驟:
創(chuàng)建模板
app創(chuàng)建用戶界面之前,要先創(chuàng)建app的模板。一個(gè)模板就是一個(gè)類。
打開TipCalculator.swift,并把TipCalculator類從上一個(gè)項(xiàng)目中復(fù)制過來。
把類重命名為TipCalculatorModel,把常量total和taxPct改為變量,把subtotal變?yōu)橐粋€(gè)computed property。
創(chuàng)建視圖
Navigation bar?,F(xiàn)在添加一個(gè)Navigation bar,選擇視圖控制器接著下面步驟Editor\Embed In\Navigation Controller。
Labels。從對象庫中拖動一個(gè)Labels到你的視圖控制器。
Text Field。從對象庫中拖動一個(gè)Text Field到你的視圖控制器。在屬性檢查器中,設(shè)置Keyboard Type=Decimal Pad。
Slider。從對象庫中拖動一個(gè)Slider到您的視圖控制器。
Auto Layout。 Interface Builder會自動地為你的自動布局做大量的合理自動布局的設(shè)置。
本文介紹在iOS開發(fā)中,Swift實(shí)現(xiàn)清除緩存功能。主要分為統(tǒng)計(jì)緩存文件大小和刪除緩存文件兩個(gè)步驟:
在ios的OC和Swift混合開發(fā)無非是2種,一種是在OC的項(xiàng)目中使用Swift語言開發(fā),這里就需要創(chuàng)建Swift文件(或者引用Swift寫的的第三方庫),另一種是在Swift項(xiàng)目中使用OC語言開發(fā),這里就需要創(chuàng)建OC文件,(或者引用OC寫的的第三方庫)
首先我們在一個(gè)已有的OC的項(xiàng)目中,創(chuàng)建一個(gè)Swift文件
這里Xcode就會自動提示我們?nèi)纾簣D1
Would you like to configure an Objective-C bridging header?
Adding this file to ocProjectUseSwift will create a mixed Swift and Objective-C target. Would you like Xcode to automatically configure a bridging header to enable classes to be accessed by both languages?
提示我們創(chuàng)建一個(gè)橋接的頭文件,當(dāng)我點(diǎn)擊 “ Create? Bridging Header”,Xcode就給我們自動創(chuàng)建,自動創(chuàng)建的規(guī)則是:項(xiàng)目名+ "-Bridging-Header.h" 如圖2
同時(shí)在項(xiàng)目中創(chuàng)建一個(gè)Swift文件
然后在在 targets - Build Settings - Packaging 中設(shè)置Defines Module 為YES
設(shè)置完后開始使用,怎么在oc中使用Swift的類呢?
重點(diǎn): 在文件中引用 #import "ocProjectUseSwift-Swift.h"? 記住不是我創(chuàng)建的SecondVC.swift,是“項(xiàng)目名-Swift.h"文件名 ,引入這個(gè)文件就引入了所有的Swift文件內(nèi)的類、方法、屬性
說明:這個(gè)文件是系統(tǒng)自動創(chuàng)建,自動添加所有我們創(chuàng)建的Swift的類的方法和屬性
前提是要在方法和屬性前面要加@objc 如圖3:
用@objc聲明好之后,在我們引用的是“項(xiàng)目名-Swift.h"文件名的?#import "ocProjectUseSwift-Swift.h" 內(nèi)就看到有標(biāo)記了如圖4
這里分了3塊,紅色和綠色標(biāo)記框內(nèi)是我們自己標(biāo)記的oc可用的屬性和方法,藍(lán)色框內(nèi)是系統(tǒng)自己生成的oc可以初始化方法
具體使用就在oc文件中,如圖5:
此事,在這個(gè)OC創(chuàng)建的項(xiàng)目中,我們創(chuàng)建的Swift文件怎么使用OC創(chuàng)建的類呢?
這里就用到我們創(chuàng)建的橋接頭文件了,在圖2中的橋接頭文件,引入OC的頭文件,如圖6
就這樣很簡單,所以Swift文件的類都可以使用這個(gè)OC文件內(nèi)的類了,使用起,和OC調(diào)用OC的類一樣,如如圖7和圖8
Swift的項(xiàng)目中,第一次創(chuàng)建OC的文件,此時(shí)系統(tǒng)會自動幫我們創(chuàng)建橋接頭文件,如圖9
然后就有了和圖2一樣的橋接頭文件,剩下的就和圖6一樣,在橋接頭文件內(nèi)引入頭文件,即可使用OC的類,第三方庫如果也是OC寫的,在引入的時(shí)候也自動會加這個(gè)橋接頭文件,當(dāng)然一個(gè)項(xiàng)目只能加一次,加過的就不需要加了
名稱欄目:swift開發(fā)ios,swift開發(fā)ios應(yīng)用
分享地址:http://www.ekvhdxd.cn/article12/dsdjggc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、域名注冊、網(wǎng)頁設(shè)計(jì)公司、網(wǎng)站維護(hù)、網(wǎng)站設(shè)計(jì)公司、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)