这个东西网上的文章很多了,这里是自己的实现过程。
动态添加按钮分两步实现:
1、在对应的视图的控制器的viewDidLoad方法中创建按钮,并且设置的它属性和响应方法
a) 创建并初始化、设定按钮类型
b) 设定title
c) 设定尺寸(frame)
d) 设定响应方法
2、实现按钮点击的响应方法,注意使用IBAction修饰返回值类型
代码:
//实现按钮响应方法,注意使用IBAction返回值类型 -(IBAction)btnClick:(id)sender;{ //打印被点击按钮的currentTitle NSLog(@"%@",((UIButton*)sender).currentTitle); //创建alert对话框 UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"我是响应的AlertView" message:@"我被点击了" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; //显示对话框 [alert show]; } - (void)viewDidLoad { [super viewDidLoad]; //创建一个圆角按钮 UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; //设定按钮的位置和尺寸,按钮高度不能为0,否则不能响应用户点击 btn.frame = CGRectMake(20, 50, 200, 30); //设定显示文字和控制状态(被选中后高亮) [btn setTitle:@"我是按钮,点我吧" forState:UIControlStateNormal]; //添加响应方法,单击执行btnClick:方法 [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside]; //添加到view上显示 [self.view addSubview:btn]; } |
有个很惨痛的教训,使用CGRectMake 的时候,最后一个参数,也就是按钮高度给我了0,因为使用的是iOS7,按钮无边框,看不出任何外观上的问题,但是导致按钮根本不能接收用户的点击,无法响应,耽误了很长时间才发现,心情大坏啊。