IOS点击效果实现及点击后对象参数的传递

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值