前言:
前面介绍一些UI的基本用法,这节介绍一下UIView的通用事件。
通用事件在所有的UI上都可以使用。
1、UIView 事件:点击
定义:
//可以附加的点击事件 (存档在keyvalue中时,无法传参(内存地址失效),只能针对性存runtime的属性) typedef void(^OnViewClick)(id view); #pragma mark 扩展系统事件 - 点击 //!点击事件的间隔(单位秒s) -(NSInteger)clickInterval; //!设置点击事件的间隔(单位秒s) -(UIView*)clickInterval:(NSInteger)sencond; //!执行点击事件 -(UIView*)click; //!绑定事件 event:指定事件名称,也可以是控制器名称,也可以指向其它UI的事件,如:Age.click (Age是其它UI的name) -(UIView*)addClick:(NSString*)event; //!绑定事件 并指定target -(UIView*)addClick:(NSString *)event target:(UIViewController*)target; //!绑定事件 用代码块的形式 -(UIView*)onClick:(OnViewClick)block; //!移除绑定点击事件 -(UIView*)removeClick;
示例用法1:直接事件
//添加UI并增加点击事件、事件中再触发另一个UI的点击 [[[[cView addUIView:@"level4"] width:154 height:154] relate:LeftTop v:435 v2:538] onClick:^(UIView* view) { [winView click]; }];
示例用法2:触发方法
[[STLastImageView image:@"btn_sign"] addClick:@"sign:"]; //签到 -(void)sign:(UIButton*)btn { 。。。。。。。 }
示例用法3:跳转控制器。
示例用法4:设置允许点击间隔(2秒)
[[[STLastButton titleColor:ColorWhite] backgroundImage:@"btn_full_middle"] clickInterval:2];
2、UIView 事件:长按
定义:
typedef void(^OnLongPress)(id view); #pragma mark 扩展系统事件 - 长按 //!执行长按事件 -(UIView*)longPress; //!绑定事件 event:指定事件名称,也可以是控制器名称,也可以指向其它UI的事件,如:Age.click (Age是其它UI的name) -(UIView*)addLongPress:(NSString*)event; //!绑定事件 并指定target -(UIView*)addLongPress:(NSString *)event target:(UIViewController*)target; //!绑定事件 用代码块的形式 -(UIView*)onLongPress:(OnLongPress)block; //!移除绑定长按事件 -(UIView*)removeLongPress;
示例用法:
用法和点击基本一致。
3、UIView 事件:拖动
定义:
typedef void(^OnViewDrag)(id view,UIPanGestureRecognizer *recognizer); #pragma mark 扩展系统事件 - 拖动 //!执行拖动事件 -(UIView*)drag; //!绑定事件 event:指定事件名称,也可以是控制器名称,也可以指向其它UI的事件,如:Age.drag (Age是其它UI的name) -(UIView*)addDrag:(NSString*)event; //!绑定事件 并指定target -(UIView*)addDrag:(NSString *)event target:(UIViewController*)target; //!绑定事件 用代码块的形式 -(UIView*)onDrag:(OnViewDrag)block; //!移除绑定拖动事件 -(UIView*)removeDrag;
示例用法:
[sagit onDrag:^(UIView* view, UIPanGestureRecognizer *recognizer) { CGPoint point = [recognizer translationInView:view]; [Sagit.MsgBox prompt:STNumString(point.x)]; }];
通过recognizer可以获取滑动的坐标、起始状态和结束状态。
被拖动的UI元素会跟着手势一起动。
其它用法和上面的一致。
4、UIView 事件:滑动
定义:
typedef void(^OnViewSlide)(id view,UISwipeGestureRecognizer *recognizer);
#pragma mark 扩展系统事件 - 滑动 //!绑定事件 event:指定事件名称,也可以是控制器名称,也可以指向其它UI的事件,如:Age.drag (Age是其它UI的name) -(UIView*)addSlide:(NSString*)event; //!绑定事件 并指定target -(UIView*)addSlide:(NSString *)event target:(UIViewController*)target; //!绑定事件 用代码块的形式 -(UIView*)onSlide:(OnViewSlide)block; //!移除绑定事件 -(UIView*)removeSlide;
示例用法:
[sagit onSlide:^(id view, UISwipeGestureRecognizer *recognizer) { [Sagit.MsgBox prompt:STNumString(recognizer.direction)]; }];
可以获取手势滑动的方向。
其它事件:
其它事件是指某些UI特有的,例如:
UILabel 的LongPressCopy 长按保存事件。
UIImage的LongPressSave 长按保存事件。
UISwitch的onSwitch 切换事件。
等。。。特殊一点的会单独开篇介绍。
内容来源于网络如有侵权请私信删除
文章来源: 博客园
- 还没有人评论,欢迎说说您的想法!