UI初級總結


--------------------------------------04.01-------------------------------------

window的本質是一個對象。

class Prefix 類的前綴

ARC中用strong修飾內存管理

(代碼規範):dealloc放在方法的最上面,一個對象在釋放掉以後指針指向nil

alpha 透明度

視圖以所加載的窗口/視圖的原點爲原點

Frame 決定了視圖的大小與位置
Frame 的origin和size是相對於父視圖來說的
CGRectMace()方法可以快速地創建一個CGRect結構體

*Frame是CGRect類型的結構體變量

window的本質是一個視圖,UIWindow類繼承於UIView類

bounds的原點是設置本視圖座標系的原點(對子視圖有影響)
bounds的寬和高是在中心點不變的情況下進行拉伸或縮小,此時本視圖的座標系也會發生變化。(對子視圖有影響)
修改bounds只有本視圖的中心點不發生變化,本視圖的座標系會發生變化(對子視圖有影響)

Index與視圖添加到父視圖上的順序有關(第一個添加到window上的視圖下標爲0)

makeKeyAndVisible 設置主窗口

父視圖對子視圖是一對多的關係
多次添加取最後添加的結果

hidden屬性默認爲NO,YES時爲隱藏

數組在打印時以小括號開頭

一個程序一般只創建一個window

---------------------------------04.02-------------------------------------------------

UILabel是一個靜態文本框。

setNumberOfLines的參數0代表任意行,根據文本的數量來劃分行數

UITextField 輸入框
輸入控制
secureTextEntry  是否文字以圓點格式顯示(密碼模式)

UIButton
UIButton分三部分,底部爲view,左半邊爲圖片(imageView),右半邊爲文字(titleLabel)
UIButton  current開頭的屬性是獲取屬性,可以通過這些屬性直接獲取按鈕的信息

resignFirstResponder重定義第一響應對象

button修改button上的字體要加上.titleLabel

協議是系統寫好方法名供用戶重寫的方法

----------------------------04.03----------------------------------------------------

CPU
5S      armv64
5,5c  armv7s
4s       armv7
4        armv6
3GS  armv5

Images.xcassets設置應用程序的圖標和開場動畫
pt爲物理尺寸單位

--------------------------------------04.07--------------------------------------
UIButton和UITextField繼承於UIControl
UIControl與UILabel繼承於UIView

UIButton分爲三部分,底層的View以及上層左邊的image和上層右邊的titleLabel

修改UIButton上的文本內容要用UIButton.titleLabel 去調用相應方法.(titleLabel爲UILabel類型)

高質量代碼的特點:可複用,可移植,精煉.

自定義視圖:
將多個控件類型封裝到一個自定義的類中

類中出現的self代表通過該類創建的對象

MVC設計模式
MVC是一個框架級設計模式
M是Model,主要用於建立數據模式(即數據結構,與結構體相像)
V是View,主要用來顯示數據
C是控制器,負責M與V之間的通信

在IOS開發中,M和V沒有任何聯繫

視圖控制器:(ViewController)
所有視圖控制器的基類(父類)是UIViewController

視圖控制器本身是一個容器,不能顯示任何內容.(本質是一個類)
視圖控制器的view相當於容器的底部,所有東西必須放置在view上
view的默認顏色爲透明色

viewDidLoad方法中的view指的作爲底部的view
該方法中可以創建任意控件放置在view(寫法爲self.view)上

(類沒有任何意義,生成對象纔有意義.)

窗口與視圖控制器關聯用setRootViewController方法(設置根視圖控制器)
示例:[_window setRootViewController:main];(main爲一個視圖控制器類型的對象)

視圖控制器的執行順序:
初始化方法
loadView方法(view被調用時執行)
viewDidLoad方法(loadView執行後執行)

三個方法各只執行一次
*(loadView與viewDidLoad成對出現)

視圖的出現方法和消失方法:
- (void)viewWillAppear:(BOOL)animated;
- (void)viewDidAppear:(BOOL)animated;

- (void)viewWillDisappear:(BOOL)animated;
- (void)viewDidDisappear:(BOOL)animated;
空方法,若需要可重寫.成對出現.可重複執行.

在.h中引用頭文件用@class 類名;

instancetype與id相像

----------------------------------04.08-------------------------------------------

UIView繼承於UIResponder

事件(UIEvent)
事件是由硬件捕捉的一個表示用戶操作設備的對象.分爲觸摸,晃動以及遠程控制三類
在觸摸事件中會包含一個到多個UITouch(實現多點觸控)

UIView支持觸摸事件,並且支持多點觸控(一個UITouch代表一根手指在觸摸)

要實現觸摸事件首先要自定義一個類(繼承於UIView),然後重寫Touch相關的方法

當觸摸序列被諸如電話呼入這樣的系統事件所取消時,發送touchesCancelled:withEvent:消息。 非人爲取消觸摸

第一個參數touches是一個集合

drawRect中的參數rect是touchView的座標與尺寸

UIGraphicsGetCurrentContext();
獲得當前所要繪製內容的上下文(即繪圖前的草稿)

NSValue  將非對象類型的變量轉換爲對象類型

setNeedsDisplay  調用drawRect方法

setObjectForKey給字典添加一個元素

-----------------------------04.09---------------------------------------------
數組或字典等取出的元素是id類型,操作最好要轉換類型

-----------------------------04.10---------------------------------------------
空指針調用任何方法不會有任何反應

按鈕響應事件是在鼠標鬆開的時候

targetAction
[target performSelector: action withObject: (id)]
target是調用方法的對象(即addTarget方法中的第一個參數),action是(addTarget方法中的第二個參數)

屬於自己類的方法只能由自己調用

響應者
相應者對象是可以響應事件並對其進行處理的對象
UIResponder是所有UI開頭的類的基類
第一響應者是應用程序中當前負責接收觸摸事件的響應者對象(即點誰誰就是第一響應者)

userInteractionEnabled 用戶交互屬性(默認爲YES)若設爲NO,則不傳遞響應事件

當控件的透明度爲0或控件被隱藏時,不傳遞響應事件

UIImageView 相框
可以存放一個或多個圖片
不設置尺寸時,展示的是圖片的像素大小
圖片默認的用戶交互是NO
animationDuration動畫時長

手勢
UIGestureRecognizer是IOS中的手勢類,它有多個子類,代表具體手勢

-----------------------------04.11---------------------------------------------

協議的定義以@protocol開頭,以@end結束

協議的方法分爲必須實現和非必須實現兩種

@required表示必須實現(默認爲必須實現)
@optional表示可選擇實現(即非必須實現)

在.h中導入協議頭文件必須用import

協議的作用:監聽和配置

*一旦類接收協議,就必須實現協議中@required方法

對象類型的實例變量也可以接受協議

conformsToProtocol:判斷對象是否接受某些以
respondsToSelector:判斷對象是否實現了某方法

協議可以間接實現多繼承

UIScrollView滾動視圖
UIScrollView是所有滑動視圖的基類

系統的協議一般以Delegate作後綴

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章