直接从UIButton操作添加SubView,而无需调用方法

时间:2014-12-03 20:10:09

标签: ios objective-c uibutton selector objective-c-blocks

我有什么方法可以做到这一点,当按下UIButton时,它会在一行代码中添加一个子视图来初始化动作。无需调用@selector方法然后调用该方法,该方法添加子视图。

例如,我尝试了以下两次尝试:

[theButton addTarget:self.view action:@selector(addSubview:theView) forControlEvents:UIControlEventTouchUpInside];

[theButton addTarget:self.view action:@selector(addSubview:) withObjects:theView forControlEvents:UIControlEventTouchUpInside];

但都失败了。

----

我唯一的选择是调用一个然后添加视图的方法,即

[theButton addTarget:self action:@selector(addTheSubview) forControlEvents:UIControlEventTouchUpInside];


-(void)addTheSubview {
    [self.view addSubview:theSubview];
}

也许通过在UIButton的addTarget代码中使用块语句,没有方法可以做到这一点? (我对块语句知之甚少。)

1 个答案:

答案 0 :(得分:1)

你问:

  

有什么方法可以让它在按下UIButton的时候增加一个   subview只是在init的动作的一行代码中。没有   必须调用@selector方法然后调用该方法   方法添加子视图。

总之,没有。

你是“tilting at windmills”。

您需要使用按钮调用IBAction方法,该方法依次运行显示视图的多行代码。关于你可以做的最好的事情是在表单中安装你的视图但是隐藏它,然后在你的IBAction中你可以使用一行代码来设置view.hidden = NO,但你仍然需要调用一个实际的IBAction方法

按钮只能调用不带参数的方法,将按钮(发送者)作为参数,或者将按钮和触发它的UIEvent作为2个参数。您不能让按钮的操作将某个任意视图作为参数。它没有那种方式。