如何通过一个按钮来消失的UIView点击
我创建了一个解开编程和做动作如何通过一个按钮来消失的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时子视图必须消失。我怎样才能做到这一点?
做一些修正在我们的代码 -
**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];
}
}
您可以使用[view removeFromSuperView]
方法删除视图。
但是当我使用这个子视图没有显示在所有。我希望子视图必须先显示按钮时单击。当用户再次按下按钮子视图时不得不消失 – jason 2012-01-14 08:39:43
将您的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
并且不使用界面生成器它不读好。
仍然无法正常工作。 – jason 2012-01-14 09:48:24
@jason尝试编辑。当你这样做时发生了什么?它是否在方法中正确添加了视图?记录everthing查看流量。 – MadhavanRP 2012-01-14 23:05:11
现在反向工作!在第一次点击视图中不显示。通过第二次点击它出现。 – jason 2012-01-18 09:16:58
thanx Dipak。工作正常 – jason 2012-01-19 08:07:03