我有什么方法可以做到这一点,当按下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
代码中使用块语句,没有方法可以做到这一点? (我对块语句知之甚少。)
答案 0 :(得分:1)
你问:
有什么方法可以让它在按下UIButton的时候增加一个 subview只是在init的动作的一行代码中。没有 必须调用@selector方法然后调用该方法 方法添加子视图。
总之,没有。
你是“tilting at windmills”。
您需要使用按钮调用IBAction
方法,该方法依次运行显示视图的多行代码。关于你可以做的最好的事情是在表单中安装你的视图但是隐藏它,然后在你的IBAction中你可以使用一行代码来设置view.hidden = NO
,但你仍然需要调用一个实际的IBAction方法
按钮只能调用不带参数的方法,将按钮(发送者)作为参数,或者将按钮和触发它的UIEvent作为2个参数。您不能让按钮的操作将某个任意视图作为参数。它没有那种方式。