UIButton 使用不规则图片,以及 长按短按事件
2014-08-30 09:12
295 查看
不规则按钮的添加,我这里使用的第三方插件OBShapedbutton,感谢Ole Begemann。
长按和短按的思路是:短按直接使用UIButton 的addtarge 方法,长按使用长按手势
上代码
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(btnLong:)];
longPress.minimumPressDuration = 1; //定义按的时间
OBShapedButton *newButton = [[OBShapedButton alloc]initWithFrame:CGRectMake(200, 200.0, 100, 100)];
newButton.tag = 200;
[newButton setBackgroundImage:[UIImage imageNamed:@"button-normal"] forState:UIControlStateNormal];
[newButton setBackgroundImage:[UIImage imageNamed:@"button-highlighted"] forState:UIControlStateHighlighted];
[newButton addGestureRecognizer:longPress];
[newButton addTarget:self action:@selector(btnShort:) forControlEvents:UIControlEventTouchUpInside];
// 这里需要注意的是 长按事件如果不做 longPress.state == UIGestureRecognizerStateBegan 这个判断,会导致began,end 分别调用一次,显然我们需要避免这种情况。
-(void)btnLong:(UILongPressGestureRecognizer *)longPress
{
if (longPress.state == UIGestureRecognizerStateBegan) {
UIButton *newBTN =(UIButton *) longPress.view;
NSLog(@"长按按钮的tag值:%d",newBTN.tag);
}
}
-(void)btnShort:(UIButton *)newBtn
{
NSLog(@"短按按钮的tag值%d",newBtn.tag);
}
DEMO下载地址:https://github.com/chexsong/WorkingDemos 下的 ButtonLongPress
车小松(http://blog.csdn.net/mangosnow)
本文遵循“署名-非商业用途-保持一致”创作公用协议
长按和短按的思路是:短按直接使用UIButton 的addtarge 方法,长按使用长按手势
上代码
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(btnLong:)];
longPress.minimumPressDuration = 1; //定义按的时间
OBShapedButton *newButton = [[OBShapedButton alloc]initWithFrame:CGRectMake(200, 200.0, 100, 100)];
newButton.tag = 200;
[newButton setBackgroundImage:[UIImage imageNamed:@"button-normal"] forState:UIControlStateNormal];
[newButton setBackgroundImage:[UIImage imageNamed:@"button-highlighted"] forState:UIControlStateHighlighted];
[newButton addGestureRecognizer:longPress];
[newButton addTarget:self action:@selector(btnShort:) forControlEvents:UIControlEventTouchUpInside];
// 这里需要注意的是 长按事件如果不做 longPress.state == UIGestureRecognizerStateBegan 这个判断,会导致began,end 分别调用一次,显然我们需要避免这种情况。
-(void)btnLong:(UILongPressGestureRecognizer *)longPress
{
if (longPress.state == UIGestureRecognizerStateBegan) {
UIButton *newBTN =(UIButton *) longPress.view;
NSLog(@"长按按钮的tag值:%d",newBTN.tag);
}
}
-(void)btnShort:(UIButton *)newBtn
{
NSLog(@"短按按钮的tag值%d",newBtn.tag);
}
DEMO下载地址:https://github.com/chexsong/WorkingDemos 下的 ButtonLongPress
车小松(http://blog.csdn.net/mangosnow)
本文遵循“署名-非商业用途-保持一致”创作公用协议
相关文章推荐
- .Net程序员安卓学习之路5:使用xutils注入View和事件以及图片的显示
- .Net程序员安卓学习之路5:使用xutils注入View和事件以及图片的显示
- UIButton基础以及使用block+UIButton处理点击事件
- ajaxToolkit:AutoCompleteExtender 的触发选择事件以及JSON序列化和使用键值对
- 使用WPF Resource以及Transform等技术实现鼠标控制图片缩放和移动的效果
- Control Study->AdRotator广告控件显示自定义配置文件中广告以及与DataGrid控件结合使用显示图片(示例代码下载)
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- Control Study->AdRotator广告控件显示自定义配置文件中广告以及与DataGrid控件结合使用显示图片(示例代码下载)
- busybox下mdev的使用以及mdev.conf的规则配置
- 使用图片创建不规则窗体 windows sdk
- Twisted TimerService的使用(以及由此带来的诡异事件)
- Jquery 使用 onpropertychange 会被执行2遍 以及 onpropertychange 事件参数 不用attachEvent
- 使用 .NET 对事件进行编程以及VS.NET 2003 有那些新特性
- 使用不规则形状的UIButton的方法
- 重载页面事件,以及在基类中使用注册脚本 RegisterStartupScript 无效的问题
- 使用WPF Resource以及Transform等技术实现鼠标控制图片缩放和移动的效果
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- Control Study->AdRotator广告控件显示自定义配置文件中广告以及与DataGrid控件结合使用显示图片(示例代码下载)
- busybox下mdev的使用以及mdev.conf的规则配置