CocoaTouch框架与构建应用界面
生活随笔
收集整理的這篇文章主要介紹了
CocoaTouch框架与构建应用界面
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
CocoaTouch框架與構(gòu)建應(yīng)用界面
? 蘋果應(yīng)用程序的界面幾乎都是由Cocoa和Cocoa Touch框架中的類和協(xié)議等元素構(gòu)建的,這些元素通過MVC(Model-View-Controller)模式有效地組織起來。
? macOS應(yīng)用的界面主要使用Cocoa框架開發(fā),Cocoa是一種為應(yīng)用程序提供豐富用戶體驗的框架,其核心是:Foundation和UIKit(AppKit)框架。**iOS應(yīng)用界面主要使用Cocoa Touch框架開發(fā),核心是Foundation和UIKit框架。**Cocoa Touch框架有一套自己的MVC模式,其中視圖和控制器是UIKit中的UIView(及其子類)和UIViewController(及其子類)。
1.視圖控制器
1.1 種類
- UIViewController——用于自定義視圖控制器的導(dǎo)航。
- UINavigationController——導(dǎo)航控制器,與UITableViewController結(jié)合使用,能夠構(gòu)建樹形導(dǎo)航模式。
- UITabBarController——標簽欄控制器,用于構(gòu)建樹形標簽導(dǎo)航模式。
- UIPageViewController——呈現(xiàn)電子書導(dǎo)航風格的控制器。
- UISplitViewController——可以把屏幕分割成幾塊的視圖控制器,主要為iPad屏幕設(shè)計。
- UIPopoverController——呈現(xiàn)“氣泡”風格視圖的控制器,主要為iPad屏幕設(shè)計。
1.2 生命周期
2.視圖
在Cocoa Touch框架中,提供了視圖的“根”類——UIView
2.1 UIView繼承層次結(jié)構(gòu)
- 特殊的視圖:UIControll類——該類是控件類,其子類有UIButton、UITextField、和UISlider .之所以稱他們?yōu)?#34;控件類",是因為他們都有能力響應(yīng)一些高級事件.
2.2視圖分類
- 控件:繼承自UIControll類,能夠響應(yīng)一些高級事件.
- 窗口:它是UIWindow對象.一個iOS應(yīng)用只有一個UIWindow對象.它是所有子視圖的"根"容器.
- 容器視圖:包括了UIScrollView,UIToolBar以及它們的子類.
- 顯示視圖:用于顯示信息,包括UIImageView,UILabel,UIProgressView和UIActivityIndicatorView等.
- 文本和Web視圖:提供了能夠顯示多行文本的視圖,包括UITextView和UIWebView,其中UITextView也屬于容器視圖,UIWebView是能夠加載和顯示HTML代碼的視圖.
- 導(dǎo)航視圖:為用戶提供從一個屏幕到另外一個屏幕的導(dǎo)航(或者跳轉(zhuǎn))視圖,它包括UITabBar和UINavigationBar.
- 警告框和操作表:用于給用戶提供一種反饋或者與用戶進行交互.
3.純代碼構(gòu)建頁面?(網(wǎng)絡(luò)轉(zhuǎn)載)
純代碼的條件
刪除Main Interface中的Main,同時需要刪除info.plist中的如下代碼
<key>UISceneStoryboardFile</key> <string>Main</string>項目文件變化
- AppDelegate.swift文件負責App的啟動與終止,并負責與SceneDelegate交接。
- SceneDelegate.swift文件負責管理應(yīng)用程序的生命周期。
保留SceneDelegate
不保留SceneDelegate
刪除SceneDelegate.swift
刪除info.plist中的如下內(nèi)容
刪除內(nèi)容.png
AppDelegate.swift中代碼寫成和Xcode11之前的樣子
鏈接:https://www.jianshu.com/p/cc901be44773
4.HelloWorld示例
class ViewController:UIViewController{override func viewDidLoad(){super.viewDidLoad()let screen = UIScreen.main.bounds //獲取屏幕的邊界,其返回值是CGFloat類型.CGFloat是描述視圖對象位置和大小的結(jié)構(gòu)體.let labelWidth:CGFloat = 90let labelHeight:CGFloat = 20let labelTopView:CGFloat = 150let frame = CGRect(x:(screen.size.width - labelWidth)/2,y:labelTopView,width:labelWidth,height:labelHeight)let label = UILabel(frame:frame)label.text = "HelloWorld"label.textAlignment = .centerself.view.addSubView(label) //最后,不要忘記通過addSubView:方法將它添加回父視圖中} }- frame和bounds屬性:
- frame屬性表示該視圖在**父視圖坐標系統(tǒng)(相對于父視圖)**中的位置和大小.
- bounds屬性表示該視圖在**本地坐標系統(tǒng)(相對于自己)**中的位置和大小.
- frame屬性用得很多,bounds屬性用得比較少,這主要是因為bounds屬性的坐標系是本地坐標.
總結(jié)
以上是生活随笔為你收集整理的CocoaTouch框架与构建应用界面的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL在执行JOIN ON时,到底发生了
- 下一篇: 青岛三维地图