--------------------------------------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作後綴