2012-01-14 98 views
1

我創建了一個解開編程和做動作如何通過一個按鈕來消失的UIView點擊

{ 
UIButton *myButton1 = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    myButton1.frame = CGRectMake(20, 20, 80, 44); 
    [myButton1 setTitle:@"Click Me!" forState:UIControlStateNormal]; 
    [myButton1 addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; 
    [self.view addSubview:myButton1]; 
} 

和IBAction爲我有一個UIView作爲這樣

- (IBAction)buttonClicked:(id)sender 
{ 
    CGRect myFrame = CGRectMake(0, 300, 100, 50); 
    UIView *myView = [[UIView alloc] initWithFrame:myFrame]; 
    myView.backgroundColor = [UIColor lightGrayColor]; 
    [self.view addSubview:myView]; 
    [myView release]; 
} 

我現在想子視圖當用戶第二次按myButton1時子視圖必須消失。我怎樣才能做到這一點?

回答

2

做一些修正在我們的代碼 -

**Action like this -** 

- (IBAction)buttonClicked:(id)sender 
{ 
    UIView *myView; 
    if([self.view viewWithTag:56]) 
    { 
    [[self.view viewWithTag:56] removeFromSuperview]; 
    } 
    else 
    { 
    CGRect myFrame = CGRectMake(0, 300, 100, 50); 
    myView = [[UIView alloc] initWithFrame:myFrame]; 
    myView.backgroundColor = [UIColor lightGrayColor]; 
    [myView setTag:56]; 
    [self.view addSubview:myView]; 
    [myView release]; 
    } 
} 
+0

thanx Dipak。工作正常 – jason 2012-01-19 08:07:03

2

您可以使用[view removeFromSuperView]方法刪除視圖。

+0

但是當我使用這個子視圖沒有顯示在所有。我希望子視圖必須先顯示按鈕時單擊。當用戶再次按下按鈕子視圖時不得不消失 – jason 2012-01-14 08:39:43

1

將您的buttonClicked:方法更改爲此。

- (void)buttonClicked:(id)sender 
{ 
UIView *myView; 
if(myView=[self.view viewWithTag:1234]) 
{ 
    [myView removeFromSuperview]; 
} 
else { 
    CGRect myFrame = CGRectMake(0, 300, 100, 50); 
    myView= [[UIView alloc] initWithFrame:myFrame]; 
    [myView setTag:1234]; 
    myView.backgroundColor = [UIColor lightGrayColor]; 
    [self.view addSubview:myView]; 
    [myView release]; 
} 
[self.view setNeedsDisplay]; 
} 

編輯:如果您使用IBAction並且不使用界面生成器它不讀好。

+0

仍然無法正常工作。 – jason 2012-01-14 09:48:24

+0

@jason嘗試編輯。當你這樣做時發生了什麼?它是否在方法中正確添加了視圖?記錄everthing查看流量。 – MadhavanRP 2012-01-14 23:05:11

+0

現在反向工作!在第一次點擊視圖中不顯示。通過第二次點擊它出現。 – jason 2012-01-18 09:16:58