XCode Interface Builder開發——1
創建Xcode項目
-
選擇第二個選項
-
選擇Single View App,點擊Next
-
設置完后點擊Next
Xcode基本面板
-
導航面板
-
工具欄項目
簡單的練手項目
要求:
創建三個按鈕和一個label控件,通過對不同按鈕添加事件來改變label的顏色和字體
步驟:
-
將label和button拖拽入view controller的view中
-
點擊要修改的控件,通過打開attributes inspector將按鈕名稱分別改為紅、黃、藍色,label的text改為"這是一段文字“
-
在ViewController的.m源文件中的類擴展中添加label屬性:
@interface ViewController ()
@property(nonatomic,weak) IBOutlet UILabel *label; //任何需要連接到nib文件中的對象的實例變量都必須以IBOutlet關鍵字開頭
@end
-
將屬性與剛剛拖入的label控件進行連線
-
在ViewController的.m源文件中寫入代碼:
//IBAction關鍵字告訴Interface Builder,此方法是一個操作,且可以被某個控件觸發
-(IBAction)clickRedButton:(id)sender{
NSLog(@"按下了紅色按鈕!"); //在控制台通知
self.label.textColor=[UIColor redColor]; //改變label顏色
}
-(IBAction)clickYellowButton:(id)sender{
NSLog(@"按下了黃色按鈕!");
self.label.textColor=[UIColor yellowColor];
self.label.font=[UIFont systemFontOfSize:20.f];
}
-(IBAction)clickblueButton:(id)sender{
NSLog(@"按下了藍色按鈕!");
self.label.textColor=[UIColor blueColor];
self.label.font=[UIFont systemFontOfSize:30];
}
-
操作同上,將這三個方法分別與三個新建的按鈕進行連線:
-
點擊運行
重點
- IBOutlet
該關鍵字的作用是告訴Interface Builder,此實例變量將被連接到nib中的對象。你創建的任何需要連接到nib文件中的對象的實例變量都必須以IBOutlet關鍵字開頭。打開Interface Builder時,它會在項目頭文件中掃描此關鍵字,可以根據這些(且只能根據這些)變量將代碼連接到nib。
@property(nonatomic,weak) IBOutlet UILabel *label;
//該處使用weak是因為控件一直是在ViewController類中存在的,並且為強引用,此處為了不影響控件,其屬性應為弱引用,若為強引用可能會造成在ViewController中刪除控件后,其引用個數仍為1的情況。
- IBAction
該關鍵字告訴Interface Builder,此方法是一個操作,且可以被某個控件觸發
-
判斷是否能連線
1、屬性(IBOutlet)都能連線
2、方法(IBAction)需要看連線對象是否繼承於UIControl -
連接方法補充: