IOS点击实现的方式:
1、使用UIButton,这个不用说大家都知道:
UIButton *btn=[[UIButton allloc] init];
[btn addTarget:self action:@selector(OnTapBtn:) forControlEvents:UIControlEventTouchUpInside];
OnTapBtn是点击按钮时调用的方法:
-(void)OnTapBtn:(id)sender{
Button *btn=(Button *)sender;
//做相应的操作
}
2、为任意的UIView添加点击效果(使用手势):
UIView *view=[[UIView alloc] init];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(OnTapBtnView:)];
[view addGestureRecognizer:tap];
UITapGestureRecognizer默认点击一次,即与UIButton的点击一样。点击后调用方法:
-(void)OnTapBtnView:(UITapGestureRecognizer *)sender{
NSLog(@"tag:%ld",sender.view.tag);
}
点击后参数的传递:
1、当点击的是按钮,可以通过自定义按钮的方式实现参数的传递:
自定义按钮很简单,只需要设置一个对象属性即可
@interface MyButton : UIButton
<pre name="code" class="html">//UIButton传递的对象
@property(nonatomic,strong) NSObject *btnObj;
@end
然后可以使用
<pre name="code" class="html">MyButton *mBtn=[[MyButton alloc] init];
<pre name="code" class="html">mBtn.btnObj=自定义对象;
//在点击方法中就可以使用下面方式获取对象
<pre name="code" class="html">-(void)OnTapBtn:(id)sender{
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">MyButton</span><span style="font-size: 12px; font-family: Arial, Helvetica, sans-serif;"> *btn=(MyButton *)sender;</span>
<span style="font-family:Arial, Helvetica, sans-serif;"> </span><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">自定义对象=</span><span style="font-size: 12px; font-family: Arial, Helvetica, sans-serif;">btn.btnObj;//可能会涉及到传递对象类型的强制转化</span><span style="font-family:Arial, Helvetica, sans-serif;">
</span> //做相应的操作
}
2、当点击的不是按钮的UIView时候:
有可能你会想到自定义UIView然后如同上面一样,为自定义的UIView添加属性,但是实际中这种方式行不通,UIView不允许这样做。具体实现可以参考:
http://blog.csdn.net/guobing19871024/article/details/50749410
实现百度糯米中图片在上文字在下的按钮的方式(只说思路):
1、自定义UIView:
自定义UIView,在自定义的UIView中添加UIImageView和UILabel
2、自定义按钮UIButton:
在自定义的按钮中添加UIImageView和UILabel
3、使用UIButton中的setImageEdgeInsets与setTitleEdgeInsets