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可以接受用戶響應,而且,它上面的子視圖也可以接受用戶響應,如果父視圖不接受用戶響應,它上面的子視圖也不能參與用戶響應
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章