当时我的项目里在tabview的表尾处有一个居中的按钮。测试经理希望点击按钮所在整行区域都能响应事件。
而项目经理却觉的此事没有必要,中间的加号按钮已经能告诉用户点击加号才会添加。
最终我与产品经理商量的结果是在不改变显示效果的情况下加大按钮的事件响应区域。
先说我当时的思路
第一种方法是直接在整个表尾加手势点击响应与button同样的事件
第二种是将button放在一个较大的视图上作为其子视图,再在父视图上添加手势响应事件
但是最终我没有选择这两种方法
第三种方法是通过调节button 的大小。然后设置button的图片与button的相对位置。这样就能够实现图片大小显示不变,但是其实整个按钮的大小已经扩大了
等于就是扩大了按钮响应事件区域
[btn setImage:[UIImage imageNamed:@"btn.image"] forState:UIControlStateNormal];
[btn setImage:[UIImage imageNamed:@"btn.iamge"] forState:UIControlStateSelected];
[btn addTarget:self action:@selector(addNewDevice:) forControlEvents:UIControlEventTouchUpInside];
[btn setImageEdgeInsets:UIEdgeInsetsMake(5, 60, 5, 60)];
此时需要注意的是设置图片的时候不能设置成了
[btn setBackgroundImage:[UIImage imageNamed:@"btn.image"] forState:UIControlStateNormal];
你会发现这个方法设置的图片是无法改变相对位置的