ios學習:UIButton,初識委託

來源:互聯網
上載者:User
 1 - (void)viewDidLoad 2 { 3     [super viewDidLoad]; 4     // Do any additional setup after loading the view, typically from a nib. 5      6     //第一種方法建立 7     UIButton *newBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 8      9     newBtn.frame = CGRectMake(50.0f, 50.0f, 100.0f, 50.0f);10     [self.view addSubview:newBtn];11     12     [newBtn setTitle:@"正常狀態" forState:UIControlStateNormal];13     [newBtn setTitle:@"選中狀態" forState:UIControlStateHighlighted];14     /*setTitle方法:設定button在某個狀態下的的title15     第二個參數 forState 在定義button的文字或者圖片在何種狀態下才會顯示,是一個枚舉類型16     enum {17     UIControlStateNormal               = 0,        常規狀態顯示18     UIControlStateHighlighted          = 1 << 0,   高亮狀態顯示.點擊時是高亮狀態19     UIControlStateDisabled             = 1 << 1,   禁用狀態才會顯示20     UIControlStateSelected             = 1 << 2,   選中狀態.什麼時候才是選中狀態?21     UIControlStateApplication          = 0x00FF0000,  當應用程式標誌時22     UIControlStateReserved             = 0xFF000000 內部預留23     };*/24 25     [newBtn addTarget:self action:@selector(click:event:) forControlEvents:UIControlEventTouchUpInside];26     /*給button添加事件,最後一個參數指明了事件類型,第二個參數指明了哪個方法對button的事件進行響應,該方法帶兩個參數,第一個是事件發生者,第二個是發生的事件,好像最多隻能有兩個.27      第一個參數指明了誰提供回應程式法,當第一個參數為nil時,將會從當前對象開始遞迴詢問響應鏈直至找到方法提供者或者到跟響應鏈?28      */29     30     31     [self.view addSubview:newBtn];32     33     34     //第二種方法建立.這種方法在建立是沒有指定button的type(風格),預設是UIButtonTypeCustom,重點在於這個屬性只能在初始化時指定,初始化後是沒法更改的35     //所以一般不用這種建立方法36     UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(100.0f, 100.0f, 200.0f, 50.0f)];37     38     btn.tag = 100;39     [btn setTitle:@"預設顯示風格" forState:UIControlStateNormal];40     41     [self.view addSubview:btn];42     [btn release];43 }44 45 46 /*47  提供給UIButton的事件回應程式法48  */49 -(void) click:(id)sender event:(UITouch *) touchEvent50 {51     /*52      指定委派物件為當前類,則表明當前類實現了UIAlertViewDelegate協議時,應該實現了協議裡的一些方法,則這些方法可以對alertview的一些事件進行響應53      問題在於,當前類也可以不繼承UIAlertViewDelegate協議啊,只是不進行對alertview的事件響應而已54      */55     UIAlertView *alerView = [[UIAlertView alloc]56                              initWithTitle:@"Attention"57                              message:@"test"58                              delegate:self   59                              cancelButtonTitle:@"OK"60                              otherButtonTitles:@"Cancel",61                              nil];62     63     [alerView show];64     [alerView release];65 66 }67 68 69 /*70  當前類繼承了UIAlertViewDelegate協議,實現協議裡的其中一個方法,可以提供來響應alertview的事件響應71  */72 -(void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex73 {74     UIAlertView *alerView = [[UIAlertView alloc]75                              initWithTitle:@"Attention123"76                              message:[NSString stringWithFormat:@"index at %d",buttonIndex]77                              delegate:nil78                              cancelButtonTitle:@"OK123"79                              otherButtonTitles:nil,80                              nil];81     82     [alerView show];83     [alerView release];84 }85 86 - (void)didReceiveMemoryWarning87 {88     [super didReceiveMemoryWarning];89     // Dispose of any resources that can be recreated.90 }
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.