通过UIView来模拟 实现 Button的点击效果

首先建立根视图

在根视图上实现以下功能:

通过MyButton 实现 button的点击效果

首先建立一个类:MyButton这个类

1.在MyButton.h文件中写一个自定义的方法,把目标和对应的动作传过来

原代码:

-(void)addNewTarget:(id)target Action:(SEL)action;
 target :目标 ,button 执行哪一个类的方法,对应的目标就是那个类的对象
 action:动作 ,让button具体做什么事,执行的方法就是对相应的动作

2.在MyButton.h文件中低昂一两条属性,把对应的目标和动作保存起来

原代码:

@property(nonatomic, assign)id target;
@property(nonatomic ,assign)SEL action;

3.实现自定义的方法,储存目标和动作(在MyButton.m文件中)

原代码:

-(void)addNewTarget:(id)target Action:(SEL)action{
    _action=action;
    _target=target;
}

4.点击的触发条件 (在MyButton.m文件中)

-(void)touchesBegan:(NSSet )touches withEvent:(UIEvent )event{

}

5.让myButton来完成委托人的任务,从而实现点击效果(点击方法中实现)

[self.target performSelectorInBackground:self.action withObject:self];

6.在根视图控制器中 建立一个MyButton

原代码:

 MyButton *button =[[MyButton alloc] initWithFrame:CGRectMake(100, 100, 150, 40)];
 button.layer.cornerRadius=10;
    button.layer.borderWidth =1;
    button.tag =1000;
    [self.view addSubview:button];
    [button release];

7.使用自定义方法

原代码:

[button addNewTarget:self Action:@selector(click:)];

8.实现方法

原代码:

-(void)click:(MyButton *)button{
    NSLog(@"实现点击效果");

注意:要引入头文件 ,在appDelegate.m文件中引入根视图控制器头文件;在根视图控制器的.m文件中引入MyButton的头文件

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-25 22:52:05

通过UIView来模拟 实现 Button的点击效果的相关文章

android selector设置button点击效果(详细)以及常见问题

button的点击效果学习起来事实上比较容易,此点对开发者来说也是使用的比较频繁的一个知识点,与它相关的还有编辑框的获取焦点时改变背景颜色.选择button选择时改变字体颜色等等.这些其实都是用到的drawable的seletor. 当然drawable中还有很多其他效果可以实现,具体的可以参考笔者的另一篇博客: android修改控件外观(使用drawable资源) 效果:(不点击时显示白色,点击时显示灰色) 实现这个效果其实很简单,在drawable中创建一个xml文件,然后输入两行代码即可

Webbrowser模拟百度一下子点击事件

Webbrowser模拟百度一下点击事件新建一个form,有一个button和一个webbrowser控件.然后webbrowser一开始加载的就是百度主页.然后在文本框里输入点东西,如何做到点击button就相当于点击点击webbrowser中的"百度一下"按钮? 分享到: ------解决方案--------------------refer: ? 1 2 3 4 5 6 7 8 9 10 11     private void Form1_Load(object sender, 

ios 添加到cell 上的button点击无效!扩大button的点击区域(黑魔法)

一般情况下点击效果都是正常的!要不然你对它做了什么?一般细心的小伙伴都没有遇到这种情况,但是呢! 当然我是二班的!在这里我主要讲两个问题,解决问题和普及魔法. 一.普及问题(button在cell上点击无效) 自定义一个cell,cell里边creat了一个button!然后调试了半天,什么反应都没有! 1.button的enable 设置为yes可点击的. 1.我以为我设置了交互禁用! self.userInteractionEnabled = YES; 2.button的frame越界了!

使用xib制作界面有时会出现button无法点击,解决办法

在view文件中复制如下代码 //解决苹果4S头视图超出了屏幕大小button不能点击问题 - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { UIView *result = [super hitTest:point withEvent:event]; CGPoint buttonPoint2 = [self.Button convertPoint:point fromView:self]; if ([self.But

iOS 在tableView上添加button导致按钮没有点击效果和不能滑动的问题

[原]iOS 在tableView上添加button导致按钮没有点击效果和不能滑动的问题 2014-10-31阅读202 评论0 转载请注明出处. 今天在调试代码的时候,在tableviewcell上添加button,发现button快速点击的话,是看不出点击效果的,查找资料发现, ios7上UITableViewCell子层容器是UITableViewCellScrollView, ios6的则是UITableViewCellContentView.点击效果应该是被ScrollView的触摸延

struct和class的区别 观察者模式 https连接 点击button收到点击事件,中间发生了什么

问题: 4道过滤菜鸟的iOS面试题 网上已经有很多针对各种知识点的面试题,面试时有些人未必真正理解也能通过背题看上去很懂.我自己总结了4道面试题,好快速的判断这个人是否是一个合格的工程师,欢迎大家点评. 1.struct和class的区别 在面试之前你觉得所有的计算机专业的学生都应该能答的上来,事实是我面的人里有超过三分一没有答上来. 有时我还会顺便问下swfit里的array是什么类型,在大量复制时会不会有性能问题. 2.介绍一下观察者模式 也许有些人已经觉得设计模式有些过时,没有整本读过.就

安卓给button增加点击事件

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mmmm); //获取XML里面的button Button button=(Button)findViewById(R.id.button1); //给button增加点击事件 button.setOnClickListener(new OnClick

android ListView中的Item有Button时候点击异常处理

1.当ListView中有Button的时候往往会遇到很多问题,比较常见的一个问题是: 假设:在ListView中有N个Item当点击其中某个Item中的Button的时候,需要改变当前Button的状态,在你点击以后确实最后一个Item的Button的状态改变了,不管点击哪一个Button都是最后一个 Item的中的Button的状态被改变了,这里涉及到ListView重绘的问题. 要解决上面的问题的方法是将点击的监听事件提出来进行封装,在用就可以解决上述问题了. 给个示例代码: 在ListV

移动端页面a button input去除点击效果

1 手机端页面a button input去除点击效果 添加: a, button, input { -webkit-tap-highlight-color: rgba(255, 0, 0, 0); } 2 使用border创建小三角形 span { height: 0px; width: 0px; border-top: 5px solid #006633; border-left: 5px solid transparent; border-right: 5px solid transpar