2012-08-06 50 views
0

我試圖在我的演示程序中製作一個按鈕,其大小爲UITextView。在我再次按下按鈕(AKA退出全屏模式)後將其重新調整到原始大小。UITextView,全屏模式和用UIButton退出

我從來沒有試圖在1個UIButton上添加多個Action。

-(IBAction)clickButtonFullSize:(id)sender 
{ 
     CGRect r = [[UIScreen mainScreen] bounds]; 
     [myText setFrame:r]; 
} 

-(IBAction)clickButtonReSize:(id)sender 
{ 
    [myText setFrame:CGRectMake(0,0,200,200)]; 
} 

當觸摸UIButton時,第一種方法工作正常。但我怎樣才能鏈接第二個方法與相同的按鈕重新調整它(退出全屏)?

回答

1

你可以簡單地通過管理你的按鈕的tag來做到這一點。無需兩個IBActions

-(IBAction)clickButtonFullSize:(id)sender 
{ 
    UIButton *btn = (UIButton*) sender; 

    if (btn.tag == 0) 
    { 
     btn.tag = 1; 

     CGRect r = [[UIScreen mainScreen] bounds]; 
     [myText setFrame:r]; 

    } 
    else 
    { 
     btn.tag = 0; 

     [myText setFrame:CGRectMake(0,0,200,200)]; 

    } 

} 
+0

你也可以用相同的方式尋找幀... – saadnib 2012-08-06 14:12:35

+0

如果你想添加兩個不同的IBAction,那麼你需要分配兩個不同的事件,但這不是一個好主意! – saadnib 2012-08-06 14:13:24

+0

不錯。從未見過這種方法。我完成休息後會嘗試。 – Sobiaholic 2012-08-06 14:14:39

0

使用相同的方法調整大小,但是請檢查,如果按鈕是全尺寸然後使其變小,反之亦然。

要麼這樣做,要麼創建一個bool,其中包含按鈕完整大小以及調用它的方法檢查它的事實。

您可以在同一個按鈕上指向兩種不同的方法。

1

將兩個操作鏈接到同一個UIButton並在第一個方法中創建一個布爾值。改變第一個函數出口處的布爾值,並在第二個方法中拋出if。

+0

這是我一開始就做的。我想要另一種更好的方式。 – Sobiaholic 2012-08-06 14:13:08

+1

你也可以做1 IBAction,w/an if語句檢查framesize。我個人不會去翻動按鈕的標籤值,但這只是我個人的看法(我覺得標籤應該是靜態的)。 – DJPlayer 2012-08-06 14:19:15