IOS開發基礎—利用代碼添加按鈕和文本框

作者聲明

因個人能力問題,文中不免會有錯誤之處,歡迎各位讀者交流,批評,指正!

摘要

本文通過一個實例來學習利用代碼添加按鈕和文本框的方法。

基本思路

  1. 重寫viewController的對象方法- (void)viewDidLoad。
  2. 在該方法裏面創建按鈕或者文本框。
  3. 設置按鈕和文本框的屬性(normal和highlight)。
  4. 爲控件添加監聽事件(其中可以調用其他方法)
  5. 將控件放置在父view中。

實例

代碼如下:

//
//  ViewController.m
//  按鈕操作—利用代碼添加按鈕
//
//  Created by dqw on 15/5/6.
//  Copyright (c) 2015年 itcast. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

//控制器的view加載完畢後會調用該方法。
- (void)viewDidLoad {

    // 要首先調用父類的該方法 。
    [super viewDidLoad];

#pragma 創建按鈕。

    UIButton *but = [[UIButton alloc]init];

    // 設置按鈕的位置和長寬。
    CGRect frame = CGRectMake(0, 0, 100, 100);
    but.frame = frame;

    // 爲按鈕設置背景圖片。

    // 該方法默認從main bundle裏面加載圖片,因爲圖片已經加載在suppos裏面,所以可以不用寫絕對路徑。
    UIImage *imageforNormal = [UIImage imageNamed:@"btn_01.png"];

    [but setBackgroundImage:imageforNormal forState:UIControlStateNormal];

    UIImage *imageforHigtlight = [UIImage imageNamed:@"btn_02.png"];

    [but setBackgroundImage:imageforHigtlight forState:UIControlStateHighlighted];

    // 爲按鈕設置標題。
    [but setTitle:@"點我啊" forState:UIControlStateNormal];
    [but setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];

    [but setTitle:@"找死啊" forState:UIControlStateHighlighted];
    [but setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];

    // 爲按鈕設置監聽事件。其中的envents如果被觸發,則self(當前控制器)就會調用butClick方法。
    // 其實不添加該代碼的話,也可以對按鈕進行監聽。
    [but addTarget:self action:@selector(butClick) forControlEvents:UIControlEventTouchUpInside];

    // 將按鈕放在符view中。
    [self.view addSubview:but];

#pragma 代碼創建文本框。

    UITextField *text = [[UITextField alloc]init];

    // 設置文本框位置和大小。
    CGFloat X = self.view.center.x ;
    CGFloat Y = self.view.center.y ;

    text.center = CGPointMake(X, Y);
    text.bounds = CGRectMake(0, 0, 100, 30);

    // 設置其背景色。
    [text setBackgroundColor:[UIColor greenColor]];

    // 放置文本框。
    [self.view addSubview:text];

    }

// 定義一個方法。
- (void)butClick
{
    NSLog(@"單擊了but");
}

@end

重點 難點 注意點

  1. 在重寫- (void)viewDidLoad方法時不要忘了調用[super viewDidLoad]。
  2. 加載圖片的時候注意路徑(本例中簡單)。
  3. 控件的bounds屬性是CGRect類型。
  4. 深刻體會並理解下面的方法各參數。
    // 爲按鈕設置監聽事件。其中的envents如果被觸發,則self(當前控制器)就會調用butClick方法。
    // 其實不添加該代碼的話,也可以對按鈕進行監聽。
    [but addTarget:self action:@selector(butClick) forControlEvents:UIControlEventTouchUpInside];

待完善內容

  1. 加載圖片的方法。
  2. 各觸發事件。
  3. add相關的其它方法。
發佈了27 篇原創文章 · 獲贊 2 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章