UIView-4-EventForViews(在view上加入button时候的事件处理)

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

//创建view对象
    UIView *myview = [[UIView alloc]init];
    myview.frame = CGRectMake(50, 100, 150, 100);
    [self.view addSubview:myview];
   
    //设置背景颜色
    myview.backgroundColor = [UIColor greenColor];
    
    //设置是否能接受事件,默认是YES
    myview.userInteractionEnabled = NO;
    
    //创建button
    UIButton * btn = [[UIButton alloc]init];
    btn.frame = CGRectMake(50, 100, 250, 40);
    [myview addSubview:btn];
    btn.backgroundColor = [UIColor redColor];
    
    //注册事件
    [btn addTarget:self action:@selector(onClick:) forControlEvents:UIControlEventTouchDown];
    
    //1.如果父视图不能接受事件,则子视图也不能接受事件
    //2.子视图超出父视图的部分不能接受事件
    
    [btn removeFromSuperview];
    [self.view addSubview:btn];
    
    [self.view insertSubview:btn belowSubview:myview];
    //3.如果上面视图覆盖下面视图而且能接受事件,则下面视图不会收到事件了
    
    //4.UILabel和UIImageView 默认不能接受事件
    
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

#pragma mark - button处理方法
- (void)onClick:(UIButton *)btn
{
    NSLog(@"button press!");
}

@end

时间: 2024-10-11 23:10:54

UIView-4-EventForViews(在view上加入button时候的事件处理)的相关文章

view上添加点手势 button无法响应点击事件

在view 上添加手势 有的时候  会把Button的 点击事件盖掉,这个 时候 我们用UITapGestureRecognizer的代理方法 //手势的代理方法 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { // 过滤掉UIButton,也可以是其他类型 if ( [touch.view isKindOfClass:[UIButto

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

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

UIImageView上添加Button不能响应点击事件

UIImageView *backImageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, self.view.frame.size.height-UITABBAR_HEIGHT-216-39, 320, 43) ]; [backImageView setUserInteractionEnabled:YES];//使添加其上的button有点击事件 [backImageView setImage:[UIImage imageNamed

MVC在页面View上获取当前控制器名称、Action名称以及路由参数

有时候在封装MVC通用控件时需要在页面上获取这些数据. 用以下方法即可: //获取控制器名称: ViewContext.RouteData.Values["controller"].ToString(); //获取Action名称: ViewContext.RouteData.Values["action"].ToString(); //获取路由参数值: ViewContext.RouteData.Values[名称].ToString(); //如:ViewCon

iOS constraint被应用与view上的时间

在viewdidload时,constraint是没有被应用的,之后在layoutSubviews时,系统应用了constraint.但是我感觉在viewWillLayoutSubviews函数时就已经应用了constraint到view上,但是没有进行绘制.如果你想在constraint执行后调整view的frame,不能写在viewWillLayoutSubviews上,应该重写layoutSubviews,注意不要忘记调用super的方法.当然,在viewDidLayoutSubviews

【android】模拟点击某个指定坐标作用在View上

/** * 模拟点击某个指定坐标作用在View上 * @param view * @param x * @param y */ public void clickView(View view,float x,float y) { long downTime = SystemClock.uptimeMillis(); final MotionEvent downEvent = MotionEvent.obtain( downTime, downTime, MotionEvent.ACTION_DO

判断某个点是否在某个view上

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touches anyObject]; CGPoint pt = [touch locationInView:self.view]; if (!CGRectContainsPoint([self.view frame], pt)) { NSLog(@"点pt不在self.view上"); }else{ NSLog(@&q

ios上的 button和input-button为什么不水平居中的

在iphone6plus上的button中文本上不居中,如下图: 造成的原因,是button的padding不为零,造成的,因而设置padding: 0:就可以解决

uiview 删除某个指定view类的代码块

- (void)removeDynamictItemView:(UIView *)view { NSMutableArray *itemesToRemove = [NSMutableArray array]; for (UIView *subview in view.subviews) { if ([subview isKindOfClass:[TBCouponDynamictItemView class]]) { [itemesToRemove addObject:subview]; }els