是否可以在代码中硬编码 IBAction
和 IBOutlet
,而不是在Interface Builder中进行拖动连接?
是否可以在代码中硬编码 IBAction
和 IBOutlet
,而不是在Interface Builder中进行拖动连接?
是的,这是可能的...
示例代码
UIButton *btnDetail = [UIButton buttonWithType:UIButtonTypeRoundedRect] ;
[btnDetail setFrame:CGRectMake(250.0f, 15.0f, 65.0f, 20.0f)] ;
//btnDetail.backgroundColor = [UIColor grayColor];
[btnDetail setTitle:@"Detail" forState:UIControlStateNormal];
[btnDetail setTitleColor: [UIColor redColor] forState: UIControlStateNormal];
[btnDetail.titleLabel setFont:[UIFont fontWithName:@"Verdana" size:12]];
[btnDetail setBackgroundColor:[UIColor clearColor]];
[btnDetail sizeThatFits:btnDetail.frame.size];
[self.view addSubview:btnDetail];
//IBAction
[btnDetail addTarget:self
action:@selector(ShowSavingAccountDetail:)
forControlEvents:UIControlEventTouchUpInside];
[btnDetail setImage:[UIImage imageNamed:@"btn-detail.png"] forState:UIControlStateNormal];
IBAction和IBOutlet的概念及唯一目的是为了提供接口生成器(Interface Builder)连接xib文件和您的代码的手段。
如果您不想在代码中使用接口生成器,那么您不需要使用IBAction或IBOutlet,只有当您想从类中使用在xib中实例化的对象(如按钮,文本字段等)时,才需要它们。
话虽如此,mihirpmehta的答案是以编程方式向您的视图添加UI元素并为其添加动作的正确方法。