2011年4月12日 星期二

[轉]用程式碼產生UIButton與UILabel

from : http://www.furnace.idv.tw/
首先是新增按鈕的動作,我們定義一個新的函式用來新增按鈕,程式碼如下。
- (void)setButtonInterface  UIButton *_helloButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; _helloButton.frame = CGRectMake(0, 0, 100, 100);  _helloButton.center = self.view.center;  [_helloButton addTarget:self action:@selector(onHelloButton:) forControlEvents:UIControlEventTouchUpInside];  [self.view addSubview:_helloButton]; }
程式碼中我們新增的一個按鈕 _helloButton 加上底線只是要與之前的範例作區隔,沒有特別的意思,之後把按鈕設定城圓角的樣式,就如果你直接重 Interface Builder 裡拉出的 Round Rect Button 一樣,然後設定該按鈕的大小與心點位置,最後是它的事件與所要觸發的函式,還記得剛剛我們所查看過的事件,在這裡它就叫作 UIControlEventTouchUpInside,在觸發事件與函式連結好之後 ,就將此按鈕物件放到畫面上。
之後我們在程式進入點 viewDidLoad 這個函式中加上新增按鈕的 Method,就算完成按鈕部份的設定了。 - (void)viewDidLoad { [super viewDidLoad]; [self setButtonInterface]; } 完成按鈕之後接下來就是 Label 文字框的部份,由於文字框是在按鈕被按下時才需要有對應的動作,所以這邊乾脆就直接改寫 onHelloButton: 的內容,從這邊直接動態新增我們所要的文字框。 - (IBAction)onHelloButton:(id)sender  UILabel *_textLabel = [UILabel new];  _textLabel.frame = CGRectMake(0, 0, 50, 20);  _textLabel.center = self.view.center;  _textLabel.backgroundColor = [UIColor colorWithWhite:255 alpha:0];  _textLabel.text = @"Hello";  _textLabel.textAlignment = UITextAlignmentCenter;  [self.view addSubview:_textLabel]; }
在上面程式碼部份,我們新增的一個文字框 _textLabel,同樣的設定他的大小與中心點位置,還有背景顏色的透明度,因為我們希望他的背景是純透明的,接著設定字串 Hello 為文字框的內容並將字體置中,最後是將新產生的文字框物件放到畫面上。
現在,執行看看,畫面上會出現一個按鈕,上面不包含任何文字,因為這時候的文字框還沒有產生,緊接著按下按鈕之後,則會秀出 Hello 的字樣。

沒有留言:

張貼留言