iOS 基礎 (一)
//UIButton->UIControl->UIView
//UIControl:所有帶有事件操作的控件都會繼承於UIControl
//*UIImageView會按照自己的大小展示圖片,圖片會被拉伸或壓縮*//
//rootViewController:將控制器管理的view加載到window層上
self.window.rootViewController = vc;
//創建view的方法,如果我們不自動創建view,必須回調loadView的方法,這樣系統會自動創建一個view
//只有view創建結束,控制器纔會開始加載視圖
- (void)loadView{
[super loadView];
//手動創建view
// self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// self.view.backgroundColor = [UIColor redColor];
NSLog(@"loadView");
}
/iewDidLoad:當self.view創建完成時,執行此方法;在這個方法裏進行視圖的創建(創建UI界面)
//相當頁面的起點
/*
viewDidLoad 進行數據,視圖的創建及加載
*/
/lf.view默認的tag值爲0,我們自己創建的視圖的tag值不能爲0
/*
loadView和viewDidLoad 在頁面不銷燬的情況下,只會執行一次
*/
- (void)viewDidLoad {
[super viewDidLoad];
}
- (void)buttonClick:(UIButton *)button{
//1、獲取之前創建label
UILabel *label = (UILabel *)[self.view viewWithTag:1000];
//2、靜態的變量:
static int i = 0;
// ++i;
//3、更改文字
label.text = [NSString stringWithFormat:@"按鈕被點擊了%d次",++i];
}
//這裏面static int i = 0;這行代碼會先在編譯階段只編譯一次,之後不會再走這行代碼 。每次點擊按鈕,i會進行累加。靜態變量的好處
- (void)btnClick:(UIButton *)sender {
}
關於後面的參數問題?
terminate 終結
常見報錯:
- [Person test]: unrecognized selector sent to instance 0x7fd2ca097c0
給Person對象發送了一個不能識別的消息:text 並且是減號對象方法
什麼是控件?
什麼是封裝?
弱語法?
概念:
工具類:基本沒有任何成員變量,裏面的方法基本都是類方法
斷點調試,代碼段保存,註釋標記#program mark - UIView,多文件查看
1.點語法的本質是方法調用
例如:
{
int _age;
}
p.age = 10;會自動調用[p setAge:10]; 不是訪問成員變量,況且現在成員變量只有下劃線age,_age
@interface
{
成員變量
}
@public 在任何地方都能直接訪問對象的成員變量 (_age = 1;這是直接訪問)
@private只能在當前類的對象方法中直接訪問 其子類只能通過setter和getter方法訪問
@protected 能在當前類和其子類的對象方法中直接訪問
@package 只要處在同一個框架中,就能直接訪問對象的成員變量
@implementation
{
成員變量 這裏聲明默認就是私有的@private
}
@property聲明的屬性 是實例變量加setter和getter方法組合。其中實例變量如果存在則不會自動生成,如果不存在,就自動生成,並且自動生成@private類型的實例變量(或叫做成員變量)(如_age)
默認情況下,setter和getter方法中的實現會去訪問下劃線開頭的成員變量(實例變量)
自從Xcode4.4之後,@property獨攬了@synthesize的功能
%@ 返回的是一個NSString指針,用來輸出字符串。
%s 用於輸出字符串數組。
類 (class):表示對象類型的集合體。
對象 (object):是一種包含值和指向其類的隱藏指針的結構體。
實例 (instance):對象的另一種稱呼。
消息 (message):對象可以執行的操作,成員函數,實例方法的抽象名稱。
方法 (method):爲響應消息而運行的代碼。
//實例化:開闢空間並初始化
_userArray=[[NSMutableArray alloc] init];
//實例: instance 對象的另一種稱呼
//輸出屏幕的尺寸 NSStringFromCGRect(size)
CGRect size = self.view.frame;
NSLog(@"size == %@",NSStringFromCGRect(size));
NSArray 自然順序
NSSet 是無序的 注意:NSSet中不能存儲重複的數據,可以用它來去除重複的值
NSSet *set = [[NSSet alloc]initWithObjects:str1,str2,str3,str1,nil];
此時set中只有3個
userInteractionEnabled
//只有UILabel和UIImageView的userInteractionEnabled默認爲NO,其他默認YES
//userInteractionEnabled爲YES時,本身view可以接受用戶響應,而且,它上面的子視圖也可以接受用戶響應,如果父視圖不接受用戶響應,它上面的子視圖也不能參與用戶響應
//UIControl:所有帶有事件操作的控件都會繼承於UIControl
//*UIImageView會按照自己的大小展示圖片,圖片會被拉伸或壓縮*//
//rootViewController:將控制器管理的view加載到window層上
self.window.rootViewController = vc;
//創建view的方法,如果我們不自動創建view,必須回調loadView的方法,這樣系統會自動創建一個view
//只有view創建結束,控制器纔會開始加載視圖
- (void)loadView{
[super loadView];
//手動創建view
// self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// self.view.backgroundColor = [UIColor redColor];
NSLog(@"loadView");
}
/iewDidLoad:當self.view創建完成時,執行此方法;在這個方法裏進行視圖的創建(創建UI界面)
//相當頁面的起點
/*
viewDidLoad 進行數據,視圖的創建及加載
*/
/lf.view默認的tag值爲0,我們自己創建的視圖的tag值不能爲0
/*
loadView和viewDidLoad 在頁面不銷燬的情況下,只會執行一次
*/
- (void)viewDidLoad {
[super viewDidLoad];
}
- (void)buttonClick:(UIButton *)button{
//1、獲取之前創建label
UILabel *label = (UILabel *)[self.view viewWithTag:1000];
//2、靜態的變量:
static int i = 0;
// ++i;
//3、更改文字
label.text = [NSString stringWithFormat:@"按鈕被點擊了%d次",++i];
}
//這裏面static int i = 0;這行代碼會先在編譯階段只編譯一次,之後不會再走這行代碼 。每次點擊按鈕,i會進行累加。靜態變量的好處
- (void)btnClick:(UIButton *)sender {
}
關於後面的參數問題?
terminate 終結
常見報錯:
- [Person test]: unrecognized selector sent to instance 0x7fd2ca097c0
給Person對象發送了一個不能識別的消息:text 並且是減號對象方法
什麼是控件?
什麼是封裝?
弱語法?
概念:
工具類:基本沒有任何成員變量,裏面的方法基本都是類方法
斷點調試,代碼段保存,註釋標記#program mark - UIView,多文件查看
1.點語法的本質是方法調用
例如:
{
int _age;
}
p.age = 10;會自動調用[p setAge:10]; 不是訪問成員變量,況且現在成員變量只有下劃線age,_age
@interface
{
成員變量
}
@public 在任何地方都能直接訪問對象的成員變量 (_age = 1;這是直接訪問)
@private只能在當前類的對象方法中直接訪問 其子類只能通過setter和getter方法訪問
@protected 能在當前類和其子類的對象方法中直接訪問
@package 只要處在同一個框架中,就能直接訪問對象的成員變量
@implementation
{
成員變量 這裏聲明默認就是私有的@private
}
@property聲明的屬性 是實例變量加setter和getter方法組合。其中實例變量如果存在則不會自動生成,如果不存在,就自動生成,並且自動生成@private類型的實例變量(或叫做成員變量)(如_age)
默認情況下,setter和getter方法中的實現會去訪問下劃線開頭的成員變量(實例變量)
自從Xcode4.4之後,@property獨攬了@synthesize的功能
%@ 返回的是一個NSString指針,用來輸出字符串。
%s 用於輸出字符串數組。
類 (class):表示對象類型的集合體。
對象 (object):是一種包含值和指向其類的隱藏指針的結構體。
實例 (instance):對象的另一種稱呼。
消息 (message):對象可以執行的操作,成員函數,實例方法的抽象名稱。
方法 (method):爲響應消息而運行的代碼。
//實例化:開闢空間並初始化
_userArray=[[NSMutableArray alloc] init];
//實例: instance 對象的另一種稱呼
//輸出屏幕的尺寸 NSStringFromCGRect(size)
CGRect size = self.view.frame;
NSLog(@"size == %@",NSStringFromCGRect(size));
NSArray 自然順序
NSSet 是無序的 注意:NSSet中不能存儲重複的數據,可以用它來去除重複的值
NSSet *set = [[NSSet alloc]initWithObjects:str1,str2,str3,str1,nil];
此時set中只有3個
userInteractionEnabled
//只有UILabel和UIImageView的userInteractionEnabled默認爲NO,其他默認YES
//userInteractionEnabled爲YES時,本身view可以接受用戶響應,而且,它上面的子視圖也可以接受用戶響應,如果父視圖不接受用戶響應,它上面的子視圖也不能參與用戶響應
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.