iOS開發-UI (一)補充 UIWindow UIView UIlabel

来源:http://www.cnblogs.com/fcug/archive/2017/01/21/6338077.html
-Advertisement-
Play Games

之前忘了把這些整理出來,現在補充一下,應該放在前面學習的 知識點: 1.UI的初步認識 2.UIWindow 3.UIView 4.UIlabel UI的初步認識 1.什麼是UI(*) UI即User Interface(用戶界面)的簡稱。UI設計則是指對軟 件的人機交互、操作邏輯、界面美觀的整體設 ...


之前忘了把這些整理出來,現在補充一下,應該放在前面學習的

知識點:

1.UI的初步認識

2.UIWindow

3.UIView

4.UIlabel

 

========================  

UI的初步認識

 

1.什麼是UI(*)

UI即User Interface(用戶界面)的簡稱。UI設計則是指對軟 件的人機交互、操作邏輯、界面美觀的整體設計。好的UI設 計不僅是讓軟體變得有個性有品味,還要讓軟體的操作變得 舒適、簡單、自由、充分體現軟體的定位和特點。

 

2.第一個UI工程

 

1)UI工程的程式入口在哪裡(*)

在AppDelegate這個類中(UIApplication的代理對象);

 

2)什麼是UIApplicationMain(*)

每一個程式在運行期必須有且僅有一個UIApplication(或則其 子類)的一個實例。創建UIApplication的單例實例。這樣可以 通過調用[UIApplication sharedApplication]來得到這個單例 實例的指針。

 

  UIApplication的一個主要工作是處理用戶事件,它會創建一個 隊列,把所有用戶事件都放入隊列,逐個處理,

  在處理的時候,它會發送當前事件到一個合適的處理事件的目 標控制項。此外,UIApplication實例還維護一個在本應用中打開 的window列表(UIWindow實例),這樣它就 可以接觸應用 中的任何一個UIView對象。UIApplication實例會被賦予一個 代理對象,以處理應用程式的生命周期事件(比如程式啟動和 關閉)、系統事件(比如來電、記事項警告)等等

 

3)IOS程式圖標和程式名設置(***)

修改info.plist配置文件中的bundle name

圖片必須是png格式,並且像素尺寸必須要符合要求

========================  

UIWindow

 

1.iPhone應用程式通常只有一個視窗,表示為一個UIWindow類的 實例。應用程式在啟動時創建這個視窗,並往視窗中加入一或多 個視圖並顯示出來。

 

2.UIWindow對象是所有UIView的根,管理和協調應用程式的顯 示。一般應用程式只有一個UIWindow對象,即使有多個 UIWindow對象,也只有一個UIWindow可以接受到用戶的觸屏 事件。

 

備註:UIWindow繼承自UIView

 

  

========================

UIView使用

 

  1.UIView初步介紹

ios中一切看得見摸得著的類都是直接或者間接的繼承自UIView

 

  2.UIView作用

1)視圖是UIView類的實例,負責在屏幕上定義一個矩形區域。

視圖在展示用戶界面及響應用戶界面交互方面發揮關鍵作用。

每個視圖對象都要負責渲染視圖矩形區域中的內容,並響應該區域 中發生的操作事件。視圖是應用程式與用戶交互的重要機制。除了 顯示內容和處理事件之外,視圖還可以用於管理一或多個子視圖。

 

2)子視圖是指嵌入到另一視圖對象邊框內部的視圖對象,而被嵌入的 視圖則被稱為父視圖或超視圖。視圖的這種佈局方式被稱為視圖層 次,一個視圖可以包含任意數量的子視圖,通過為子視圖添加子視 圖的方式,視圖可以實現任意深度的嵌套。子視圖總是被顯示在其 父視圖的上方。每個父視圖都負責管理其直接的子視圖,根據需要 調整它們的位置和尺寸,以及響應它們沒有處理的事件。

 

3.iPhone屏幕是用點來計算坐標的

型號           x          y

  iPhone4     320    *   480

     iPhone4S 320 *   480

     iPhone5  320 * 568

     iPhone5S 320 *   568

     iPhone6  375 *   667

     iPhone6 Plus 414 * 736

 

普通屏幕 1點=1像素

retina屏幕 1點 = 4像素

6 Plus 1點 = 9像素

 

4.iPhone的坐標系

1) 原點在左上角

2) 往右為x的正方向,往下為y的正方向

 

 

  5.UIView常見屬性和坐標屬性

1)IOS中的坐標系統

2)frame: 該view在父view坐標系統中的位置和大小。 (參照點是,父親的坐標系統)

  3)bounds:該view在自身坐標系中的位置和大小。 (參照點是,自己的坐標系)

  4)center:該view的中心點在父view坐標系統中的位置。

(參照點是,父親的坐標系統)

 

  6.UIView的層次關係

1)添加子視圖:addSubView

[self.window addSubview:label];

2)從父視圖移除:removeFromSuperview

 

 

 

========================

UIlabel

 

1.UIFont類常用方法

1)創建一個UIFont對象

  (UIFont *)fontWithName:(NSString *)name size:(CGFloat)size

  label.font = [UIFont fontWithName:@"Zapfino" size:20];

2)遍歷系統字體庫

  (NSArray *)familyNames

//獲取系統的字體庫

    NSArray *fontArr = [UIFont familyNames];

3)設置加粗

  (UIFont *)boldSystemFontOfSize:(CGFloat) size

label.font = [UIFont boldSystemFontOfSize:20];

    

 

  2.UILabel如何改變字體顏色

1)字體顏色:setTextColor

2)文字陰影顏色:setShadowColor

3)設置文字陰影偏移: setShadowOffset

//陰影相對於本身的label 往X的正方向偏移20個單位,往Y方向偏移20個單位

    label.shadowOffset = CGSizeMake(20, 20);

    //設置陰影顏色

    label.shadowColor = [UIColor grayColor];

  3.UILabel文字對齊方式:setTextAlignment

1)NSTextAlignmentLeft -> 左對齊

2) NSTextAlignmentCenter ->居中對齊

3)NSTextAlignmentRight ->右對齊

label.textAlignment = NSTextAlignmentCenter;

  4.UILabel多行顯示:numberOfLines     

//0代表無限換行,直到超出label本身的範圍

    label.numberOfLines = 0;

  5.自適應內容,根據內容大小設置UILabel的frame

          //textSize為最後字元串內容占用的區域大小

    CGSize textSize = [str boundingRectWithSize:CGSizeMake(200, 3000) options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;

    

    //創建一個UILabel ,UILabel的大小根據textSize進行變化

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 20, textSize.width, textSize.height)];

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • COLPICK是一款非常的輕小,無需圖片就可以實現顏色選擇器的jquery插件,只用 JS 和 CSS 就實現了全部功能,而且非常直觀,類似Photoshop的界面,使用方便。顏色的明暗很容易自定義,整個整個都是用html5+ CSS3實現外觀而,插件只有28 KB,瀏覽器載入速度可以說是非常快的, ...
  • html代碼 js代碼 上傳服務端代碼 "查看博客c 最齊全的上傳文件方法" 附近下載 "上傳文件js" ...
  • 我們經常會需要驗證字元串的格式,比如密碼長度範圍、電子郵件格式、固定電話號碼和手機號碼格式等,這個時候我們經常會需要用到正則表達式。但是正則表達式用起來性能會低一點,所以在需要驗證的時候能不使用正則表達式還是儘量不要使用正則表達式。下麵貼出來我寫的一個驗證類,裡面包含了一些常用的驗證。這些都是服務端 ...
  • https://github.com/jobbole/awesome-javascript-cn http://collect.w3ctrain.com ...
  • 預載入圖片是提高用戶體驗的一個很好方法。圖片預先載入到瀏覽器中,訪問者便可順利地在你的網站上衝浪,並享受到極快的載入速度。這對圖片畫廊及圖片占據很大比例的網站來說十分有利,它保證了圖片快速、無縫地發佈,也可幫助用戶在瀏覽你網站內容時獲得更好的用戶體驗。本文將分享三個不同的預載入技術,來增強網站的性能 ...
  • 1.簡介 function命令與函數名之間有一個星號*; 函數體內部使用yield語句,定義遍歷器的每個成員,即不同的內部狀態。 總結: 調用Generator函數,返回一個部署了Iterator介面的遍歷器對象,用來操作內部指針。 以後,每次調用遍歷器對象的next方法,就會返回一個有著value ...
  • css快速佈局必弄清的幾件事:塊級元素&內聯元素概念釐清、盒模型、定位元素顯示優先順序總結、居中對齊方法總結、樣式繼承等。 ...
  • 我們在安裝環境的時候安裝了NDK,可以在eclipse下直接生成so文件。NDK的壓縮包裡面自帶了一些sample工程,NDK的文件直接解壓到某個目錄下即可。 第一次生成so文件的時候,我們先使用NDK的sample下的hello-jni的例子。 1、啟動eclipse,通過Create proje ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...