Objective-C語法之第一個iPhone應用程序的那些事兒(十)

Objective-C語法之第一個iPhone應用程序的那些事兒

雨松MOMO原創文章如轉載,請註明:轉載至我的獨立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archives/432

Objective-C語法系列在之前的文章中一直在介紹基本的語法的相關知識,但是學習語法的目的還是爲了走進iPhone IOS的開發世界。從今以後Objective-C語法文章將不在更新。全力更新IOS遊戲開發 軟件開發系列文章,這篇文章MOMO將帶各位盆友們簡單介紹iPhone開發的一些基本控件的使用,簡單的構建我們第一個iPhone應用程序。各位盆友們我們先預熱一下,嘿嘿。


讀過我Android系列開發的盆友應該很清楚這個熟悉的界面吧,哇咔咔~~










獲取手機屏幕尺寸的方法


    //得到屏幕的寬和高
    CGRect rect=[[UIScreen mainScreen] bounds];     
    CGSize size = rect.size;
    int screenWidth = size.width;
    int screenHeight = size.height;







1.文本框視圖

在視圖中加入一個文本框,可在框內攥寫一些內容,設置字體顏色,位置 ,大小等等。

    //創建label視圖
    label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, screenWidth, 30)];
    //設置顯示內容
    label.text = @"雨松MOMO的程序世界";
    //設置背景顏色
    label.backgroundColor = [UIColor blueColor];
    //設置文字顏色
    label.textColor = [UIColor whiteColor];
    //設置顯示位置居中
    label.textAlignment = UITextAlignmentCenter;
    //設置字體大小
    label.font = [UIFont fontWithName:[[UIFont familyNames] objectAtIndex:10] size:20];


2.按鈕視圖

       按鈕類型爲1 爲普通按鈕,CGrectMake設置按鈕的位置與大小,前兩個參數設置按鈕起始X 與 Y座標,後兩個參數設置按鈕的寬度與高度。

       這裏重點說一下addTarget, 它可以設置按鈕的綁定事件,action:設置按鈕點擊後響應方法,這行代碼的意思是點擊這個按鈕後程序執行方法ButtonPressed這個函數中的代碼。

    //創建按鈕
    button = [UIButton buttonWithType:1];
    //設置按鈕範圍
    button.frame = CGRectMake(0, 40, screenWidth, 30);
    //設置按鈕顯示內容
    [button setTitle:@"這是一個按鈕" forState:UIControlStateNormal];
    //設置按鈕顯示顏色
    button.backgroundColor = [UIColor blackColor];
    //設置按鈕改變後 綁定響應方法
    [button addTarget:self action:@selector(ButtonPressed) forControlEvents:UIControlEventTouchUpInside];  


點擊這個按鈕後進入下面這個方法,彈出一個dialog對話框。

- (void)ButtonPressed
{  
  
    //創建對話框
    UIAlertView * alertA= [[UIAlertView alloc] initWithTitle:@"我的視圖" message:@"歡迎一起學習IPHONE開發" delegate:self cancelButtonTitle:@"確定" otherButtonTitles: nil]; 
    //添加取消按鈕
    [alertA addButtonWithTitle:@"取消"];  
    //將這個UIAlerView 顯示出來  
    [alertA show];  
    //objective-C 不像java 有自己的垃圾回收機制 所以我們在編寫程序中一定要注意釋放內存 從一開始就養成良好習慣  
    [alertA release];
   
} 








3.進度條視圖

和上面button視圖的構建差不多,這裏設置進度條最大值與最小值,拖動的時候就可以直接得到這個範圍之間的數值,同樣將拖動事件綁定在valueChangeTest方法中。

    //創建進度條
    slider=[[UISlider alloc] initWithFrame:CGRectMake(0,80,screenWidth,30)];
    //進度條最大值
    slider.maximumValue=100;
    //進度條最小值
    slider.minimumValue=0;
    //起始點的位置
    slider.value=20;
    //設置背景顏色
    slider.backgroundColor=[UIColor blackColor];
    //設置進度條改變後 綁定響應方法
    [slider addTarget:self action:@selector(valueChangeTest) forControlEvents:UIControlEventValueChanged];


拖動進度條後發生改變進入下面方法,[slider vale]可以得到拖動的進度值。


- (void)valueChangeTest
{  
  
    float value = [slider value];
    NSLog(@"進度條已經發生改變:%f",value);
    
}












4.編輯框視圖

        非常常見的視圖,可以在編輯框中輸入信息。前提是用戶觸摸點擊輸入框,這時彈出系統軟鍵盤方可輸入信息,但是這個輸入框不會自動關閉,須要我們在程序中自己調用代碼去關閉,稍後介紹如何關閉這個輸入框。


    //創建文字輸入框
    textfield = [[UITextField alloc] initWithFrame:CGRectMake(0,120,screenWidth,50)];
    
    //默認顯示文字
    textfield.text = @"這是一個輸入框";
    //點擊後顯示文字
    textfield.placeholder = @"請在輸入框是輸入信息";
    //文字顯示位置,這裏居左對齊
    textfield.textAlignment = UITextAlignmentLeft;
    //默認顯示文字顏色
    textfield.textColor = [UIColor grayColor];
    //設置輸入的字體
    textfield.font = [UIFont fontWithName:[[UIFont familyNames] objectAtIndex:0] size:17];
    //設置輸入框的類型,3爲普通類型
    textfield.borderStyle = 3;
    //點擊輸入框後清楚原始內容
    textfield.clearsOnBeginEditing = YES;
    //設置輸入框背景顏色
    textfield.backgroundColor = [UIColor blackColor];






5.圖片視圖

設置圖片在屏幕中顯示的位置,當然這個圖片文件必需拷貝到工程當中,拷貝方法可以直接將圖片用鼠標拖動到Xcode的工程中。


    //創建圖片視圖
    imageview = [[UIImageView alloc] initWithFrame:
                            CGRectMake(100, 200, 120, 120)];
    
    //設置圖片的顯示的資源路徑
    [imageview setImage:[UIImage imageNamed:@"temp.jpg"]];


6.透明全屏按鈕

它的存在就是爲了解決輸入法出現後無法自動關閉,就是說如果輸入法軟鍵盤出現後 ,這時候點擊屏幕任意位置關閉輸入法,實現的原理是用戶點擊到了屏幕中設置的透明按鈕,調用關閉輸入法方法將輸入法關閉了而已 .

    //創建一個隱藏的按鈕
    backgroudButton=[[UIButton alloc] init];
    //讓這個填充整個屏幕
    backgroudButton.frame = self.view.frame; 
    //添加按鈕的響應時間,用來關閉軟鍵盤
    [backgroudButton addTarget:self action:@selector(ButtonClick) forControlEvents:UIControlEventTouchUpInside];  


點擊屏幕任意位置,關閉輸入法。


-(void)ButtonClick
{ 
    // 觸摸屏幕人以地方 關閉軟鍵盤
    [textfield resignFirstResponder];
}




        這樣所有的視圖的代碼都已經貼上,這些視圖實際上是subView,須要將這些subView添加到屏幕的主視圖當中。並且爲了避免內存出現泄漏,一定要及時的釋放這些視圖。

    //將所有對象添加入視圖中
    [self.view addSubview:backgroudButton]; 
    [self.view addSubview:label];
    [self.view addSubview:imageview];
    [self.view addSubview:button];
    [self.view addSubview:slider];
    [self.view addSubview:textfield];
   

    
    //釋放所有對象
    [imageview release];
    [label release];
    [slider release];
    [textfield release];



下面給出完整的代碼


HelloWorldViewController.h
Controller

#import <UIKit/UIKit.h>

@interface HelloWorldViewController : UIViewController
{
    //文本框
    UILabel * label;
    //按鈕
    UIButton * button;
    //進度條
    UISlider *slider;
    //輸入框
    UITextField * textfield;
    //圖片視圖
    UIImageView *imageview ;
    //背景按鈕
    UIButton * backgroudButton;
}
@end


HelloWorldViewController.m

#import "HelloWorldViewController.h"

@implementation HelloWorldViewController

- (void)didReceiveMemoryWarning
{
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];
    
    // Release any cached data, images, etc that aren't in use.
}

#pragma mark - View lifecycle


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
    [super viewDidLoad];
    
    //得到屏幕的寬和高
    CGRect rect=[[UIScreen mainScreen] bounds];     
    CGSize size = rect.size;
    int screenWidth = size.width;
    int screenHeight = size.height;
    
    
    
    //創建label視圖
    label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, screenWidth, 30)];
    //設置顯示內容
    label.text = @"雨松MOMO的程序世界";
    //設置背景顏色
    label.backgroundColor = [UIColor blueColor];
    //設置文字顏色
    label.textColor = [UIColor whiteColor];
    //設置顯示位置居中
    label.textAlignment = UITextAlignmentCenter;
    //設置字體大小
    label.font = [UIFont fontWithName:[[UIFont familyNames] objectAtIndex:10] size:20];
    
 
    //創建按鈕
    button = [UIButton buttonWithType:1];
    //設置按鈕範圍
    button.frame = CGRectMake(0, 40, screenWidth, 30);
    //設置按鈕顯示內容
    [button setTitle:@"這是一個按鈕" forState:UIControlStateNormal];
    //設置按鈕顯示顏色
    button.backgroundColor = [UIColor blackColor];
    //設置按鈕改變後 綁定響應方法
    [button addTarget:self action:@selector(ButtonPressed) forControlEvents:UIControlEventTouchUpInside];  
    
    
    
    //創建進度條
    slider=[[UISlider alloc] initWithFrame:CGRectMake(0,80,screenWidth,30)];
    //進度條最大值
    slider.maximumValue=100;
    //進度條最小值
    slider.minimumValue=0;
    //起始點的位置
    slider.value=20;
    //設置背景顏色
    slider.backgroundColor=[UIColor blackColor];
    //設置進度條改變後 綁定響應方法
    [slider addTarget:self action:@selector(valueChangeTest) forControlEvents:UIControlEventValueChanged];
   
    
   
    
    //創建文字輸入框
    textfield = [[UITextField alloc] initWithFrame:CGRectMake(0,120,screenWidth,50)];
    
    //默認顯示文字
    textfield.text = @"這是一個輸入框";
    //點擊後顯示文字
    textfield.placeholder = @"請在輸入框是輸入信息";
    //文字顯示位置,這裏居左對齊
    textfield.textAlignment = UITextAlignmentLeft;
    //默認顯示文字顏色
    textfield.textColor = [UIColor grayColor];
    //設置輸入的字體
    textfield.font = [UIFont fontWithName:[[UIFont familyNames] objectAtIndex:0] size:17];
    //設置輸入框的類型,3爲普通類型
    textfield.borderStyle = 3;
    //點擊輸入框後清楚原始內容
    textfield.clearsOnBeginEditing = YES;
    //設置輸入框背景顏色
    textfield.backgroundColor = [UIColor blackColor];
   
    
    
    //創建圖片視圖
    imageview = [[UIImageView alloc] initWithFrame:
                            CGRectMake(100, 200, 120, 120)];
    
    //設置圖片的顯示的資源路徑
    [imageview setImage:[UIImage imageNamed:@"temp.jpg"]];
     
    //創建一個隱藏的按鈕
    backgroudButton=[[UIButton alloc] init];
    //讓這個填充整個屏幕
    backgroudButton.frame = self.view.frame; 
    //添加按鈕的響應時間,用來關閉軟鍵盤
    [backgroudButton addTarget:self action:@selector(ButtonClick) forControlEvents:UIControlEventTouchUpInside];    
    
    
    //設置整個視圖的背景顏色
    [self.view setBackgroundColor:[UIColor blackColor]];
    
    
    
    //將所有對象添加入視圖中
    [self.view addSubview:backgroudButton]; 
    [self.view addSubview:label];
    [self.view addSubview:imageview];
    [self.view addSubview:button];
    [self.view addSubview:slider];
    [self.view addSubview:textfield];
   

    
    //釋放所有對象
    [imageview release];
    [label release];
    [slider release];
    [textfield release];
    
}

- (void)ButtonPressed
{  
  
    //創建對話框
    UIAlertView * alertA= [[UIAlertView alloc] initWithTitle:@"我的視圖" message:@"歡迎一起學習IPHONE開發" delegate:self cancelButtonTitle:@"確定" otherButtonTitles: nil]; 
    //添加取消按鈕
    [alertA addButtonWithTitle:@"取消"];  
    //將這個UIAlerView 顯示出來  
    [alertA show];  
    //objective-C 不像java 有自己的垃圾回收機制 所以我們在編寫程序中一定要注意釋放內存 從一開始就養成良好習慣  
    [alertA release];
   
} 


- (void)valueChangeTest
{  
  
    float value = [slider value];
    NSLog(@"進度條已經發生改變:%f",value);
    
}

-(void)ButtonClick
{ 
    // 觸摸屏幕人以地方 關閉軟鍵盤
    [textfield resignFirstResponder];
}



- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end




最後如果你還是覺得我寫的不夠詳細 看的不夠爽 不要緊我把源代碼的下載地址貼出來 歡迎大家一起討論學習雨松MOMO希望可以和大家一起進步。


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