UIButton多参数传值实现
2016-06-11 23:11
330 查看
首先,
这个方法,默认可以给我们用的两个参数是(UIButton * )和(UIEvent * ),即action:(SEL)action——>action:@selector(click:event:)
然后我们在collectionView,想按headerView(UICollectionReusableView*并不是继承于UIControl,没有点击事件)的按钮时把indexpath传进去,这样做的好处就是不需要为每一个表头定制按钮(当然,其他实现方式也有很多,比如拿到uievent里面的touchs,再定位其在整个collectionView的位置,在计算出他在哪个section和哪个row),使用
在初始化but的时候加上这句。
然后but按钮和indexp就关联起来了,当点击之后传参数进入响应函数时,but进去了,这个indexp自然也就进去了,要在响应函数取出:
注意点:
1.@”but_index ” 类似于标识符,写啥都没关系。
2.可以当做dictionary来理解。
3.一定别忘记在前面#import
- (void)addTarget:(nullable id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;
这个方法,默认可以给我们用的两个参数是(UIButton * )和(UIEvent * ),即action:(SEL)action——>action:@selector(click:event:)
然后我们在collectionView,想按headerView(UICollectionReusableView*并不是继承于UIControl,没有点击事件)的按钮时把indexpath传进去,这样做的好处就是不需要为每一个表头定制按钮(当然,其他实现方式也有很多,比如拿到uievent里面的touchs,再定位其在整个collectionView的位置,在计算出他在哪个section和哪个row),使用
objc_setAssociatedObject(but, @"but_index", indexp, OBJC_ASSOCIATION_COPY_NONATOMIC);
在初始化but的时候加上这句。
然后but按钮和indexp就关联起来了,当点击之后传参数进入响应函数时,but进去了,这个indexp自然也就进去了,要在响应函数取出:
-(void)click:(UIButton*)but{ NSIndexPath *indexp = objc_getAssociatedObject(but, @"but_index"); NSLog(@"%d",indexp.section); }
注意点:
1.@”but_index ” 类似于标识符,写啥都没关系。
2.可以当做dictionary来理解。
3.一定别忘记在前面#import
相关文章推荐
- FLASH 多参数的URL地址(带&符号)
- 详解iOS中UIButton的三大UIEdgeInsets属性用法
- iOS - UIButton(UIEdgeInsets)/设置button上的文字和图片上下垂直居中对齐
- Swift之贪婪的UIButton
- UIButton拖动响应事件,距离问题
- IOS 7.1 兼容性bug 问题,UIButton,UILabel ...
- UIKit框架(18)UIButton和UITextField
- Java中定义形参长度可变的参数
- UIButton小结
- ajaxFileUpload.js 无刷新上传图片,支持多个参数同时上传,支持 ie6-ie10
- iOS控件--UIButton
- UIButton扩大响应区域
- [Swift]UIKit学习之UIButton的用法
- UIButton的使用
- 第一个IOS程序(代码版)
- IOS 简易图片浏览器
- iOS UI三大控件和应用程序启动流程
- iOS UIButton的简单实用方法
- iOS 短信验证码
- UIButton